Example usage for org.eclipse.jface.viewers StructuredSelection getFirstElement

List of usage examples for org.eclipse.jface.viewers StructuredSelection getFirstElement

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers StructuredSelection getFirstElement.

Prototype

@Override
    public Object getFirstElement() 

Source Link

Usage

From source file:com.byterefinery.rmbench.dialogs.JdbcParametersDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {

    Composite composite = new Composite((Composite) super.createDialogArea(parent), SWT.NONE);
    composite.setLayout(new GridLayout());
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    viewer = new TableViewer(composite, SWT.FULL_SELECTION);

    viewer.setContentProvider(new OptionContentProvider());
    viewer.setLabelProvider(new OptionLabelProvider());

    Table table = viewer.getTable();/*from  w w  w  . ja  v  a  2s .  c  om*/
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    gd.heightHint = convertHeightInCharsToPixels(7);
    table.setLayoutData(gd);
    table.setHeaderVisible(true);

    viewer.setCellModifier(new OptionCellModifier());
    viewer.setCellEditors(new CellEditor[] { new TextCellEditor(table), new TextCellEditor(table),
            new CheckboxCellEditor(table) });
    viewer.setColumnProperties(new String[] { PROP_CELL_KEY, PROP_CELL_VALUE, PROP_CELL_DEL });

    TableColumn tc = new TableColumn(table, SWT.NONE);
    tc.setText(Messages.JdbcParametersDialog_Col_Name);
    tc.setWidth(120);
    tc = new TableColumn(table, SWT.NONE);
    tc.setText(Messages.JdbcParametersDialog_Col_Value);
    tc.setWidth(120);
    tc = new TableColumn(table, SWT.NONE);
    tc.setWidth(20);

    final Composite fieldGroup = new Composite(composite, SWT.NONE);
    fieldGroup.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true));
    fieldGroup.setLayout(new GridLayout(3, false));

    Label nameLabel = new Label(fieldGroup, SWT.NONE);
    nameLabel.setText(Messages.JdbcParametersDialog_Col_Name + ":");
    final Text nameField = new Text(fieldGroup, SWT.BORDER);
    gd = new GridData(SWT.FILL, SWT.NONE, true, false);
    nameField.setLayoutData(gd);
    nameField.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            nameValue = nameField.getText();
            addButton.setEnabled(addButtonEnabled());
        }
    });

    Composite addComposite = new Composite(fieldGroup, SWT.NONE);
    gd = new GridData(SWT.LEFT, SWT.TOP, false, true);
    gd.verticalSpan = 2;
    addComposite.setLayoutData(gd);
    addComposite.setLayout(new GridLayout());

    Label valueLabel = new Label(fieldGroup, SWT.NONE);
    valueLabel.setText(Messages.JdbcParametersDialog_Col_Value + ":");
    final Text valueField = new Text(fieldGroup, SWT.BORDER);
    gd = new GridData(SWT.FILL, SWT.NONE, true, false);
    valueField.setLayoutData(gd);
    valueField.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            valueValue = valueField.getText();
            addButton.setEnabled(addButtonEnabled());
        }
    });

    addButton = new Button(addComposite, SWT.PUSH);
    addButton.setImage(RMBenchPlugin.getImage(ImageConstants.ADD));
    gd = new GridData(SWT.CENTER, SWT.CENTER, false, false);
    addButton.setLayoutData(gd);
    addButton.setEnabled(false);
    addButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Option option = findOption(nameValue);
            if (option != null) {
                option.value = valueValue;
            } else {
                options.add(new Option(nameValue, valueValue));
            }
            nameField.setText("");
            valueField.setText("");
            viewer.refresh();
        }
    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection sel = (StructuredSelection) event.getSelection();
            Option option = (Option) sel.getFirstElement();
            if (option != null) {
                nameField.setText(option.key);
                valueField.setText(option.value);
            } else {
                nameField.setText("");
                valueField.setText("");
            }
        }
    });
    viewer.setInput(options);

    return composite;
}

From source file:com.centurylink.mdw.plugin.designer.properties.ActivityInstanceSection.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    StructuredSelection selection = (StructuredSelection) tableEditor.getTableViewer().getSelection();
    if (selection.size() == 1 && selection.getFirstElement() instanceof ActivityInstanceVO) {
        final ActivityInstanceVO activityInstanceVO = (ActivityInstanceVO) selection.getFirstElement();

        if (activity.getProcess().isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
            // view details
            MenuItem detailsItem = new MenuItem(menu, SWT.PUSH);
            detailsItem.setText("View");
            ImageDescriptor detailsImageDesc = MdwPlugin.getImageDescriptor("icons/details.gif");
            detailsItem.setImage(detailsImageDesc.createImage());
            detailsItem.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    new ActivityInstanceDialog(getShell(), activity, activityInstanceVO, Mode.VIEW).open();
                }//from  w w w.j av a2 s . c  o  m
            });

            // retry
            MenuItem retryItem = new MenuItem(menu, SWT.PUSH);
            retryItem.setText("Retry");
            ImageDescriptor retryImageDesc = MdwPlugin.getImageDescriptor("icons/retry.gif");
            retryItem.setImage(retryImageDesc.createImage());
            retryItem.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    new ActivityInstanceDialog(getShell(), activity, activityInstanceVO, Mode.RETRY).open();
                }
            });

            // skip
            MenuItem skipItem = new MenuItem(menu, SWT.PUSH);
            skipItem.setText("Proceed");
            ImageDescriptor skipImageDesc = MdwPlugin.getImageDescriptor("icons/skip.gif");
            skipItem.setImage(skipImageDesc.createImage());
            skipItem.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    new ActivityInstanceDialog(getShell(), activity, activityInstanceVO, Mode.SKIP).open();
                }
            });
        }
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.designer.properties.ProcessVersionsSection.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    final StructuredSelection selection = (StructuredSelection) tableEditor.getTableViewer().getSelection();
    if (selection.size() == 1 && selection.getFirstElement() instanceof WorkflowProcess) {
        final WorkflowProcess processVer = (WorkflowProcess) selection.getFirstElement();

        MenuItem openItem = new MenuItem(menu, SWT.PUSH);
        openItem.setText("Open");
        ImageDescriptor openImageDesc = MdwPlugin.getImageDescriptor("icons/process.gif");
        openItem.setImage(openImageDesc.createImage());
        openItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                openProcess(processVer);
            }/*from   w  w w  .j  a va2  s . c o  m*/
        });
    }
    // delete
    if (!selection.isEmpty() && !process.getProject().isProduction()
            && process.isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)
            && (selection.size() == 1 && ((WorkflowProcess) selection.getFirstElement()).isLatest())
            || MdwPlugin.getSettings().isAllowDeleteArchivedProcesses()) {
        MenuItem deleteItem = new MenuItem(menu, SWT.PUSH);
        deleteItem.setText("Delete...");
        ImageDescriptor deleteImageDesc = MdwPlugin.getImageDescriptor("icons/delete.gif");
        deleteItem.setImage(deleteImageDesc.createImage());
        deleteItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                if (selection.size() >= 1 && selection.getFirstElement() instanceof WorkflowProcess) {
                    WorkflowProcess[] processVers = new WorkflowProcess[selection.size()];
                    int idx = 0;
                    for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                        processVers[idx] = (WorkflowProcess) iter.next();
                        idx++;
                    }
                    WorkflowElementActionHandler actionHandler = new WorkflowElementActionHandler();
                    actionHandler.delete(processVers);
                    boolean removedSelected = false;
                    for (WorkflowProcess pv : processVers) {
                        if (pv.equals(process))
                            removedSelected = true;
                        else
                            process.remove(pv);
                    }
                    if (removedSelected) {
                        WorkflowProcess sel = null;
                        for (WorkflowProcess toSel : process.getAllProcessVersions()) {
                            if (!toSel.equals(process)) {
                                sel = toSel;
                                break;
                            }
                        }
                        setSelection(sel);
                    } else {
                        setSelection(process); // just force refresh
                    }
                }
            }
        });
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.designer.properties.SubProcessInstancesSection.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    StructuredSelection selection = (StructuredSelection) tableEditor.getTableViewer().getSelection();
    if (selection.size() == 1 && selection.getFirstElement() instanceof ProcessInstanceVO) {
        final ProcessInstanceVO processInstanceInfo = (ProcessInstanceVO) selection.getFirstElement();

        // view//from w  w w .j a v  a 2  s . com
        MenuItem procInstItem = new MenuItem(menu, SWT.PUSH);
        procInstItem.setText("View Subprocess Instance");
        ImageDescriptor imageDesc = MdwPlugin.getImageDescriptor("icons/process.gif");
        procInstItem.setImage(imageDesc.createImage());
        procInstItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                openSubProcessInstance(processInstanceInfo);
            }
        });
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.designer.properties.TaskInstancesSection.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    StructuredSelection selection = (StructuredSelection) tableEditor.getTableViewer().getSelection();
    if (selection.size() == 1 && selection.getFirstElement() instanceof TaskInstanceVO) {
        final TaskInstanceVO taskInstanceVO = (TaskInstanceVO) selection.getFirstElement();

        // view/*from   ww  w  .j a  v  a  2s  .c  o m*/
        MenuItem taskMgrItem = new MenuItem(menu, SWT.PUSH);
        taskMgrItem.setText("View in Task Manager");
        ImageDescriptor imageDesc = MdwPlugin.getImageDescriptor("icons/taskmgr.gif");
        taskMgrItem.setImage(imageDesc.createImage());
        taskMgrItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                openTaskInstance(taskInstanceVO);
            }
        });
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.designer.properties.WorkflowAssetVersionsSection.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    final StructuredSelection selection = (StructuredSelection) tableEditor.getTableViewer().getSelection();
    // open//from  w  w w  . j ava 2  s .c  o  m
    if (selection.size() == 1 && selection.getFirstElement() instanceof WorkflowAsset) {
        final WorkflowAsset asset = (WorkflowAsset) selection.getFirstElement();

        MenuItem openItem = new MenuItem(menu, SWT.PUSH);
        openItem.setText("Open");
        openItem.setImage(workflowAsset.getIconImage());
        openItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                openAsset(asset);
            }
        });
    }
    // view comments
    if (selection.size() == 1 && selection.getFirstElement() instanceof WorkflowAsset) {
        final WorkflowAsset asset = (WorkflowAsset) selection.getFirstElement();

        MenuItem viewCommentsItem = new MenuItem(menu, SWT.PUSH);
        viewCommentsItem.setText("View Comments");
        ImageDescriptor viewCommentsImageDesc = MdwPlugin.getImageDescriptor("icons/view.gif");
        viewCommentsItem.setImage(viewCommentsImageDesc.createImage());
        viewCommentsItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                openViewCommentsDialog(asset);
            }
        });
    }
    // delete
    if (!selection.isEmpty() && !workflowAsset.getProject().isProduction()
            && workflowAsset.isUserAuthorized(UserRoleVO.ASSET_DESIGN)
            && (selection.size() == 1 && ((WorkflowAsset) selection.getFirstElement()).isLatestVersion()
                    || MdwPlugin.getSettings().isAllowDeleteArchivedProcesses())) {
        MenuItem deleteItem = new MenuItem(menu, SWT.PUSH);
        deleteItem.setText("Delete...");
        ImageDescriptor deleteImageDesc = MdwPlugin.getImageDescriptor("icons/delete.gif");
        deleteItem.setImage(deleteImageDesc.createImage());
        deleteItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                if (selection.size() >= 1 && selection.getFirstElement() instanceof WorkflowAsset) {
                    WorkflowAsset[] assets = new WorkflowAsset[selection.size()];
                    int idx = 0;
                    for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                        assets[idx] = (WorkflowAsset) iter.next();
                        idx++;
                    }
                    WorkflowElementActionHandler actionHandler = new WorkflowElementActionHandler();
                    actionHandler.delete(assets);
                    boolean removedSelected = false;
                    for (WorkflowAsset a : assets) {
                        if (a.equals(workflowAsset))
                            removedSelected = true;
                    }
                    if (removedSelected) {
                        WorkflowAsset sel = null;
                        for (WorkflowAsset toSel : workflowAsset.getAllVersions()) {
                            if (!toSel.equals(workflowAsset)) {
                                sel = toSel;
                                break;
                            }
                        }
                        workflowAsset.fireElementChangeEvent(ChangeType.ELEMENT_DELETE, null);
                        setSelection(sel);
                    } else {
                        // just remove and refresh
                        for (WorkflowAsset a : assets)
                            workflowAsset.getProject().removeWorkflowAsset(a);
                        setSelection(workflowAsset);
                    }
                }
            }
        });
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.designer.views.ListView.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    final StructuredSelection selection = (StructuredSelection) getTableViewer().getSelection();
    if (selection.size() == 1 && selection.getFirstElement() instanceof ProcessInstanceVO) {
        final Object element = selection.getFirstElement();

        MenuItem openItem = new MenuItem(menu, SWT.PUSH);
        openItem.setText("Open");
        // ImageDescriptor openImageDesc =
        // MdwPlugin.getImageDescriptor("icons/process.gif");
        // openItem.setImage(openImageDesc.createImage());
        openItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                handleOpen(element);//from   w w  w.  j  a v  a 2  s  .co m
            }
        });
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.designer.views.ProcessInstanceListView.java

License:Apache License

private Menu createContextMenu(Shell shell) {
    Menu menu = new Menu(shell, SWT.POP_UP);

    final StructuredSelection selection = (StructuredSelection) getTableViewer().getSelection();
    if (selection.size() == 1 && selection.getFirstElement() instanceof ProcessInstanceVO) {
        final ProcessInstanceVO processInstanceInfo = (ProcessInstanceVO) selection.getFirstElement();

        // open instance
        MenuItem openItem = new MenuItem(menu, SWT.PUSH);
        openItem.setText("Open");
        ImageDescriptor openImageDesc = MdwPlugin.getImageDescriptor("icons/process.gif");
        openItem.setImage(openImageDesc.createImage());
        openItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                handleOpen(processInstanceInfo);
            }// www.ja va  2s. c  o  m
        });

        // owning document
        if (OwnerType.DOCUMENT.equals(processInstanceInfo.getOwner())
                || OwnerType.TESTER.equals(processInstanceInfo.getOwner())) {
            MenuItem docItem = new MenuItem(menu, SWT.PUSH);
            docItem.setText("View Owning Document");
            ImageDescriptor docImageDesc = MdwPlugin.getImageDescriptor("icons/doc.gif");
            docItem.setImage(docImageDesc.createImage());
            docItem.addSelectionListener(new SelectionAdapter() {
                public void widgetSelected(SelectionEvent e) {
                    IStorage storage = new DocumentStorage(workflowProject,
                            new DocumentReference(processInstanceInfo.getOwnerId(), null));
                    final IStorageEditorInput input = new StorageEditorInput(storage);
                    final IWorkbenchPage page = MdwPlugin.getActivePage();
                    if (page != null) {
                        BusyIndicator.showWhile(getSite().getShell().getDisplay(), new Runnable() {
                            public void run() {
                                try {
                                    page.openEditor(input, "org.eclipse.ui.DefaultTextEditor");
                                } catch (PartInitException ex) {
                                    PluginMessages.uiError(ex, "View Document", workflowProject);
                                }
                            }
                        });
                    }
                }
            });
        }

        // instance hierarchy
        MenuItem hierarchyItem = new MenuItem(menu, SWT.PUSH);
        hierarchyItem.setText("Instance Hierarchy");
        ImageDescriptor hierarchyImageDesc = MdwPlugin.getImageDescriptor("icons/hierarchy.gif");
        hierarchyItem.setImage(hierarchyImageDesc.createImage());
        hierarchyItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                WorkflowProcess pv = new WorkflowProcess(processVersion);
                pv.setProcessVO(processVersion.getProcessVO());
                pv.setProcessInstance(processInstanceInfo);
                new WorkflowElementActionHandler().showHierarchy(pv);
            }
        });
    }

    // delete
    if (!selection.isEmpty() && !processVersion.getProject().isProduction()
            && processVersion.isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
        MenuItem deleteItem = new MenuItem(menu, SWT.PUSH);
        deleteItem.setText("Delete...");
        ImageDescriptor deleteImageDesc = MdwPlugin.getImageDescriptor("icons/delete.gif");
        deleteItem.setImage(deleteImageDesc.createImage());
        deleteItem.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                if (selection.size() == 1 && selection.getFirstElement() instanceof ProcessInstanceVO) {
                    ProcessInstanceVO pii = (ProcessInstanceVO) selection.getFirstElement();
                    if (MessageDialog.openConfirm(getSite().getShell(), "Confirm Delete",
                            "Delete process instance ID: " + pii.getId() + " for workflow project '"
                                    + processVersion.getProject().getName() + "'?")) {
                        List<ProcessInstanceVO> instances = new ArrayList<ProcessInstanceVO>();
                        instances.add((ProcessInstanceVO) selection.getFirstElement());
                        handleDelete(instances);
                    }
                } else {
                    if (MessageDialog.openConfirm(getSite().getShell(), "Confirm Delete",
                            "Delete selected process instances for workflow project '"
                                    + processVersion.getProject().getName() + "'?")) {
                        List<ProcessInstanceVO> instances = new ArrayList<ProcessInstanceVO>();
                        for (Object instance : selection.toArray()) {
                            if (instance instanceof ProcessInstanceVO)
                                instances.add((ProcessInstanceVO) instance);
                        }
                        handleDelete(instances);
                    }
                }
            }
        });
    }

    return menu;
}

From source file:com.centurylink.mdw.plugin.launch.AutomatedTestLaunchShortcut.java

License:Apache License

public void launch(ISelection sel, String mode) {
    StructuredSelection selection = (StructuredSelection) sel;
    Object firstElement = selection.getFirstElement();
    WorkflowProject project = null;//from   www. j  a  va  2  s .  c o m
    try {
        if (firstElement instanceof WorkflowElement) {
            WorkflowElement element = (WorkflowElement) firstElement;
            project = element.getProject();
            boolean prevEnablement = disableBuildBeforeLaunch();
            if (selection.size() > 1 || element instanceof AutomatedTestCase) {
                List<AutomatedTestCase> testCases = new ArrayList<AutomatedTestCase>();
                for (Object obj : selection.toArray())
                    testCases.add((AutomatedTestCase) obj);
                performLaunch(testCases, mode);
            } else {
                performLaunch(element, mode);
            }
            setBuildBeforeLaunch(prevEnablement);
        } else {
            ResourceWrapper resourceWrapper = new ResourceWrapper(firstElement);
            IFile firstFile = resourceWrapper.getFile();
            if (firstFile != null) {
                project = WorkflowProjectManager.getInstance().getWorkflowProject(firstFile.getProject());
                // test case file(s)
                List<AutomatedTestCase> testCases = new ArrayList<AutomatedTestCase>();
                Object[] objArr = selection.toArray();
                if (objArr.length == 1) {
                    WorkflowPackage pkg = project.getPackage((IFolder) firstFile.getParent());
                    testCases.add((AutomatedTestCase) pkg.getAsset(firstFile));
                } else {
                    for (Object obj : objArr) {
                        IFile file = (IFile) obj;
                        WorkflowPackage pkg = project.getPackage((IFolder) file.getParent());
                        testCases.add((AutomatedTestCase) pkg.getAsset(file));
                    }
                }
                performLaunch(testCases, mode);
            } else {
                IFolder folder = resourceWrapper.getFolder();
                if (folder != null) {
                    project = WorkflowProjectManager.getInstance().getWorkflowProject(folder.getProject());
                    performLaunch(project.getPackage(folder), mode);
                } else {
                    IProject proj = resourceWrapper.getProject();
                    project = WorkflowProjectManager.getInstance().getWorkflowProject(proj);
                    performLaunch(project, mode);
                }
            }
        }
    } catch (Exception ex) {
        PluginMessages.uiError(ex, "Test Exec", project);
    }
}

From source file:com.centurylink.mdw.plugin.launch.CucumberLaunchShortcut.java

License:Apache License

public void launch(ISelection sel, String mode) {
    StructuredSelection selection = (StructuredSelection) sel;
    Object firstElement = selection.getFirstElement();
    ResourceWrapper resourceWrapper = new ResourceWrapper(firstElement);
    try {/*  w w  w  . java 2 s  .  c om*/
        List<CucumberTest> tests = new ArrayList<CucumberTest>();
        IFile file = resourceWrapper.getFile();
        if (file != null) {
            // launch gherkin feature test(s)
            for (Object obj : selection.toArray()) {
                ResourceWrapper fileWrapper = new ResourceWrapper(obj);
                tests.add(new CucumberTest(fileWrapper.getOwningProject(), fileWrapper.getFile()));
            }
            performLaunch(tests, new ResourceWrapper(file.getParent()).getFolder(), mode);
        } else {
            // package folder
            IFolder folder = resourceWrapper.getFolder();
            if (folder != null) {
                CucumberTest.findTests(folder, tests);
                performLaunch(tests, folder, mode);
            } else {
                IProject proj = resourceWrapper.getProject();
                tests.addAll(CucumberTest.getTests(proj));
                performLaunch(tests, null, mode);
            }
        }
    } catch (Exception ex) {
        WorkflowProject proj = firstElement instanceof WorkflowElement
                ? ((WorkflowElement) firstElement).getProject()
                : null;
        PluginMessages.uiError(ex, "Test Exec", proj);
    }
}