-package org.simantics.scl.ui.tests;\r
-\r
-import java.util.Comparator;\r
-import java.util.List;\r
-\r
-import org.eclipse.core.runtime.CoreException;\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.core.runtime.IStatus;\r
-import org.eclipse.core.runtime.Status;\r
-import org.eclipse.jface.dialogs.IDialogConstants;\r
-import org.eclipse.jface.dialogs.IDialogSettings;\r
-import org.eclipse.jface.viewers.LabelProvider;\r
-import org.eclipse.swt.widgets.Button;\r
-import org.eclipse.swt.widgets.Composite;\r
-import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.eclipse.ui.IMemento;\r
-import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;\r
-import org.eclipse.ui.dialogs.SearchPattern;\r
-import org.simantics.scl.compiler.testing.TestRunnable;\r
-import org.simantics.scl.ui.Activator;\r
-\r
-public class SCLTestsDialog extends FilteredItemsSelectionDialog {\r
-\r
- private static final String SCL_TEST_DIALOG_SETTINGS = "SCLTestDialogSettings";\r
- \r
- private List<TestRunnable> tests;\r
-\r
- public SCLTestsDialog(Shell shell, List<TestRunnable> tests, boolean multi) {\r
- super(shell, multi);\r
- this.tests = tests;\r
- setTitle("Run SCL Tests");\r
- setListLabelProvider(new LabelProvider() {\r
- \r
- @Override\r
- public String getText(Object element) {\r
- if (element != null)\r
- return ((TestRunnable) element).getName();\r
- return "No name!";\r
- }\r
- });\r
- setSelectionHistory(new ResourceSelectionHistory());\r
- }\r
- \r
- private class ResourceSelectionHistory extends SelectionHistory {\r
- /*\r
- * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#restoreItemFromMemento(org.eclipse.ui.IMemento)\r
- */\r
- protected Object restoreItemFromMemento(IMemento element) {\r
- String testName = element.getString("test"); //$NON-NLS-1$\r
- return findTestByName(testName);\r
- }\r
- /*\r
- * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#storeItemToMemento(java.lang.Object,\r
- * org.eclipse.ui.IMemento)\r
- */\r
- protected void storeItemToMemento(Object item, IMemento element) {\r
- TestRunnable runnable = (TestRunnable) item;\r
- element.putString("test", runnable.getName()); //$NON-NLS-1$\r
- }\r
- }\r
- \r
- private TestRunnable findTestByName(String name) {\r
- for (TestRunnable runnable : tests) {\r
- if (runnable.getName().equals(name))\r
- return runnable;\r
- }\r
- return null;\r
- }\r
- \r
- @Override\r
- protected Control createExtendedContentArea(Composite parent) {\r
- // TODO Auto-generated method stub\r
- return null;\r
- }\r
- \r
- @Override\r
- protected void createButtonsForButtonBar(Composite parent) {\r
- super.createButtonsForButtonBar(parent);\r
- Button okButton = getButton(IDialogConstants.OK_ID);\r
- okButton.setText("Run test");\r
- setButtonLayoutData(okButton);\r
- }\r
-\r
- @Override\r
- protected IDialogSettings getDialogSettings() {\r
- IDialogSettings settings = Activator.getInstance().getDialogSettings()\r
- .getSection(SCL_TEST_DIALOG_SETTINGS);\r
- if (settings == null) {\r
- settings = Activator.getInstance().getDialogSettings()\r
- .addNewSection(SCL_TEST_DIALOG_SETTINGS);\r
- }\r
- return settings;\r
- }\r
-\r
- @Override\r
- protected IStatus validateItem(Object item) {\r
- return Status.OK_STATUS;\r
- }\r
-\r
- @Override\r
- protected ItemsFilter createFilter() {\r
- return new ItemsFilter() {\r
- {\r
- String patternText = getPattern();\r
- patternMatcher = new SearchPattern();\r
- if(patternText != null && patternText.length() > 0)\r
- patternMatcher.setPattern(patternText);\r
- else \r
- patternMatcher.setPattern("**");\r
- }\r
- @Override\r
- public boolean matchItem(Object item) {\r
- String testName = ((TestRunnable) item).getName();\r
- if(getPattern().indexOf('/') > 0)\r
- return matches(testName);\r
- else {\r
- for(String part : (testName.split("/")))\r
- if(matches(part))\r
- return true;\r
- return false;\r
- }\r
- }\r
- \r
- @Override\r
- public boolean isConsistentItem(Object item) {\r
- return true;\r
- }\r
- };\r
- }\r
-\r
- Comparator<TestRunnable> comparator = new Comparator<TestRunnable>() {\r
- @Override\r
- public int compare(TestRunnable o1, TestRunnable o2) {\r
- return o1.getName().compareTo(o2.getName());\r
- }\r
- };\r
- \r
- @Override\r
- protected Comparator<TestRunnable> getItemsComparator() {\r
- return comparator;\r
- }\r
-\r
- @Override\r
- protected void fillContentProvider(AbstractContentProvider contentProvider,\r
- ItemsFilter itemsFilter, IProgressMonitor progressMonitor)\r
- throws CoreException {\r
- progressMonitor.beginTask("Searching tests..", tests.size());\r
- for (TestRunnable test : tests) {\r
- contentProvider.add(test, itemsFilter);\r
- progressMonitor.worked(1);\r
- }\r
- progressMonitor.done();\r
- }\r
-\r
- @Override\r
- public String getElementName(Object item) {\r
- return ((TestRunnable) item).getName();\r
- }\r
-}\r
+package org.simantics.scl.ui.tests;
+
+import java.util.Comparator;
+import java.util.List;
+
+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.IDialogConstants;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.dialogs.FilteredItemsSelectionDialog;
+import org.eclipse.ui.dialogs.SearchPattern;
+import org.simantics.scl.compiler.testing.TestRunnable;
+import org.simantics.scl.ui.Activator;
+
+public class SCLTestsDialog extends FilteredItemsSelectionDialog {
+
+ private static final String SCL_TEST_DIALOG_SETTINGS = "SCLTestDialogSettings"; //$NON-NLS-1$
+
+ private List<TestRunnable> tests;
+
+ public SCLTestsDialog(Shell shell, List<TestRunnable> tests, boolean multi) {
+ super(shell, multi);
+ this.tests = tests;
+ setTitle(Messages.SCLTestsDialog_RunSCLTests);
+ setListLabelProvider(new LabelProvider() {
+
+ @Override
+ public String getText(Object element) {
+ if (element != null)
+ return ((TestRunnable) element).getName();
+ return Messages.SCLTestsDialog_NoName;
+ }
+ });
+ setSelectionHistory(new ResourceSelectionHistory());
+ }
+
+ private class ResourceSelectionHistory extends SelectionHistory {
+ /*
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#restoreItemFromMemento(org.eclipse.ui.IMemento)
+ */
+ protected Object restoreItemFromMemento(IMemento element) {
+ String testName = element.getString("test"); //$NON-NLS-1$
+ return findTestByName(testName);
+ }
+ /*
+ * @see org.eclipse.ui.dialogs.FilteredItemsSelectionDialog.SelectionHistory#storeItemToMemento(java.lang.Object,
+ * org.eclipse.ui.IMemento)
+ */
+ protected void storeItemToMemento(Object item, IMemento element) {
+ TestRunnable runnable = (TestRunnable) item;
+ element.putString("test", runnable.getName()); //$NON-NLS-1$
+ }
+ }
+
+ private TestRunnable findTestByName(String name) {
+ for (TestRunnable runnable : tests) {
+ if (runnable.getName().equals(name))
+ return runnable;
+ }
+ return null;
+ }
+
+ @Override
+ protected Control createExtendedContentArea(Composite parent) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected void createButtonsForButtonBar(Composite parent) {
+ super.createButtonsForButtonBar(parent);
+ Button okButton = getButton(IDialogConstants.OK_ID);
+ okButton.setText(Messages.SCLTestsDialog_RunTest);
+ setButtonLayoutData(okButton);
+ }
+
+ @Override
+ protected IDialogSettings getDialogSettings() {
+ IDialogSettings settings = Activator.getInstance().getDialogSettings()
+ .getSection(SCL_TEST_DIALOG_SETTINGS);
+ if (settings == null) {
+ settings = Activator.getInstance().getDialogSettings()
+ .addNewSection(SCL_TEST_DIALOG_SETTINGS);
+ }
+ 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("**"); //$NON-NLS-1$
+ }
+ @Override
+ public boolean matchItem(Object item) {
+ String testName = ((TestRunnable) item).getName();
+ if(getPattern().indexOf('/') > 0)
+ return matches(testName);
+ else {
+ for(String part : (testName.split("/"))) //$NON-NLS-1$
+ if(matches(part))
+ return true;
+ return false;
+ }
+ }
+
+ @Override
+ public boolean isConsistentItem(Object item) {
+ return true;
+ }
+ };
+ }
+
+ Comparator<TestRunnable> comparator = new Comparator<TestRunnable>() {
+ @Override
+ public int compare(TestRunnable o1, TestRunnable o2) {
+ return o1.getName().compareTo(o2.getName());
+ }
+ };
+
+ @Override
+ protected Comparator<TestRunnable> getItemsComparator() {
+ return comparator;
+ }
+
+ @Override
+ protected void fillContentProvider(AbstractContentProvider contentProvider,
+ ItemsFilter itemsFilter, IProgressMonitor progressMonitor)
+ throws CoreException {
+ progressMonitor.beginTask(Messages.SCLTestsDialog_MonitorSearchingTests, tests.size());
+ for (TestRunnable test : tests) {
+ contentProvider.add(test, itemsFilter);
+ progressMonitor.worked(1);
+ }
+ progressMonitor.done();
+ }
+
+ @Override
+ public String getElementName(Object item) {
+ return ((TestRunnable) item).getName();
+ }
+}