Search in sources :

Example 16 with IStorage

use of org.eclipse.core.resources.IStorage in project egit by eclipse.

the class ShowBlameActionHandler method isEnabled.

@Override
public boolean isEnabled() {
    IStructuredSelection selection = getSelection();
    if (selection.size() != 1) {
        return false;
    }
    Object element = selection.getFirstElement();
    IResource resource = AdapterUtils.adapt(element, IResource.class);
    if (resource instanceof IStorage) {
        return RepositoryMapping.getMapping(resource) != null;
    }
    return element instanceof CommitFileRevision;
}
Also used : CommitFileRevision(org.eclipse.egit.core.internal.storage.CommitFileRevision) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IStorage(org.eclipse.core.resources.IStorage) IResource(org.eclipse.core.resources.IResource)

Example 17 with IStorage

use of org.eclipse.core.resources.IStorage in project dsl-devkit by dsldevkit.

the class ProjectAwareClusteringBuilderState method updateMarkers.

@Override
protected void updateMarkers(final Delta delta, final ResourceSet resourceSet, final IProgressMonitor monitor) throws OperationCanceledException {
    if (StreamSupport.stream(mapper.getStorages(delta.getUri()).spliterator(), true).anyMatch(pair -> {
        IStorage storage = pair.getFirst();
        IProject project = pair.getSecond();
        return project.getFullPath().isPrefixOf(storage.getFullPath());
    })) {
        // $NON-NLS-1$
        LOGGER.debug("Processed " + delta.getUri());
        super.updateMarkers(delta, resourceSet, monitor);
    } else {
        // $NON-NLS-1$
        LOGGER.debug("Skipped " + delta.getUri());
    }
}
Also used : IStorage(org.eclipse.core.resources.IStorage) IProject(org.eclipse.core.resources.IProject)

Example 18 with IStorage

use of org.eclipse.core.resources.IStorage in project mdw-designer by CenturyLinkCloud.

the class ProcessCanvasWrapper method buildPopupMenu.

/**
 * Needs to run on the SWT UI thread.
 */
private Menu buildPopupMenu(final int x, final int y) {
    if (popupMenu != null)
        popupMenu.dispose();
    popupMenu = new Menu(getParent().getShell(), SWT.POP_UP);
    if (!isInstance()) {
        if (designerCanvasSelection instanceof WorkflowProcess) {
            if (process.getPackage() != null && process.isUserAuthorized(UserRoleVO.ASSET_DESIGN)) {
                // save as
                MenuItem saveAsItem = new MenuItem(popupMenu, SWT.PUSH);
                saveAsItem.setText("Save as...");
                ImageDescriptor propsImageDescForSave = MdwPlugin.getImageDescriptor("icons/save.gif");
                saveAsItem.setImage(propsImageDescForSave.createImage());
                saveAsItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        saveProcessAs();
                    }
                });
            }
            MenuItem exportAsItem = new MenuItem(popupMenu, SWT.PUSH);
            exportAsItem.setText("Export as...");
            ImageDescriptor exportAsDesc = MdwPlugin.getImageDescriptor("icons/export_as.gif");
            exportAsItem.setImage(exportAsDesc.createImage());
            exportAsItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    exportAs(ProcessCanvasWrapper.this.getDisplay().getActiveShell());
                }
            });
        }
        if (!process.isReadOnly()) {
            if (designerCanvasSelection instanceof WorkflowProcess) {
                if (process.isInRuleSet()) {
                    // notes
                    MenuItem noteItem = new MenuItem(popupMenu, SWT.PUSH);
                    noteItem.setText("Add Note");
                    ImageDescriptor noteImageDesc = MdwPlugin.getImageDescriptor(ICON_DOC_GIF);
                    noteItem.setImage(noteImageDesc.createImage());
                    noteItem.addSelectionListener(new SelectionAdapter() {

                        @Override
                        public void widgetSelected(SelectionEvent e) {
                            addNote(x, y);
                        }
                    });
                }
                // paste
                MenuItem pasteItem = new MenuItem(popupMenu, SWT.PUSH);
                pasteItem.setText("Paste\tCtrl+V");
                ImageDescriptor pasteImageDesc = MdwPlugin.getImageDescriptor("icons/paste.gif");
                pasteItem.setImage(pasteImageDesc.createImage());
                pasteItem.setEnabled(GraphClipboard.getInstance().get() != null);
                pasteItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        pasteSelection();
                    }
                });
            } else {
                // cut
                MenuItem cutItem = new MenuItem(popupMenu, SWT.PUSH);
                cutItem.setText("Cut\tCtrl+X");
                ImageDescriptor cutImageDesc = MdwPlugin.getImageDescriptor("icons/cut.gif");
                cutItem.setImage(cutImageDesc.createImage());
                cutItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        cutSelection();
                    }
                });
            }
        }
        if (!(designerCanvasSelection instanceof WorkflowProcess)) {
            // copy
            MenuItem copyItem = new MenuItem(popupMenu, SWT.PUSH);
            copyItem.setText("Copy\tCtrl+C");
            ImageDescriptor copyImageDesc = MdwPlugin.getImageDescriptor("icons/copy.gif");
            copyItem.setImage(copyImageDesc.createImage());
            copyItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    copySelection();
                }
            });
            // delete
            if (!process.isReadOnly()) {
                MenuItem deleteItem = new MenuItem(popupMenu, SWT.PUSH);
                deleteItem.setText("Delete\tDel");
                ImageDescriptor deleteImageDesc = MdwPlugin.getImageDescriptor("icons/delete.gif");
                deleteItem.setImage(deleteImageDesc.createImage());
                deleteItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        deleteSelection();
                    }
                });
            }
        }
    }
    // properties
    MenuItem propsItem = new MenuItem(popupMenu, SWT.PUSH);
    propsItem.setText("Show Properties");
    ImageDescriptor propsImageDesc = MdwPlugin.getImageDescriptor("icons/properties.gif");
    propsItem.setImage(propsImageDesc.createImage());
    propsItem.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            showPropertiesView();
        }
    });
    // documentation
    if (!isInstance()) {
        MenuItem docsItem = new MenuItem(popupMenu, SWT.PUSH);
        docsItem.setText("Documentation");
        ImageDescriptor docsImageDesc = MdwPlugin.getImageDescriptor("icons/word.gif");
        docsItem.setImage(docsImageDesc.createImage());
        docsItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                openDocumentation();
            }
        });
    }
    // process definition xml
    if (!isInstance() && (designerCanvasSelection instanceof WorkflowProcess) && getProcess().isInRuleSet()) {
        MenuItem defXmlItem = new MenuItem(popupMenu, SWT.PUSH);
        defXmlItem.setText("Definition Doc");
        ImageDescriptor docsImageDesc = MdwPlugin.getImageDescriptor(ICON_DOC_GIF);
        defXmlItem.setImage(docsImageDesc.createImage());
        defXmlItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                openDefinitionXml();
            }
        });
    }
    // open subprocess
    boolean isSubProcessActivity = designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).isSubProcessInvoke();
    if (!isInstance() && isSubProcessActivity) {
        final Activity subProcessActivity = (Activity) designerCanvasSelection;
        if (!subProcessActivity.isHeterogeneousSubProcInvoke()) {
            MenuItem subProcItem = new MenuItem(popupMenu, SWT.PUSH);
            subProcItem.setText(OPEN_SUBPROCESS);
            ImageDescriptor subProcImageDesc = MdwPlugin.getImageDescriptor("icons/designer.gif");
            subProcItem.setImage(subProcImageDesc.createImage());
            subProcItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    openSubProcess(subProcessActivity);
                }
            });
        }
    }
    // edit script
    boolean isScript = designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).isScript();
    if (!isInstance() && isScript) {
        final Activity scriptActivity = (Activity) designerCanvasSelection;
        MenuItem editScriptItem = new MenuItem(popupMenu, SWT.PUSH);
        String artifactTitle = "Script";
        if (scriptActivity.isRule())
            artifactTitle = "Rule";
        else if (TransformEditorValueProvider.isTransformActivity(scriptActivity))
            artifactTitle = "Transform";
        else if (scriptActivity.getAttribute("Rule") != null)
            artifactTitle += " *";
        if (process.isReadOnly())
            editScriptItem.setText("View " + artifactTitle);
        else
            editScriptItem.setText("Edit " + artifactTitle);
        ImageDescriptor scriptImageDesc = MdwPlugin.getImageDescriptor("icons/script.gif");
        editScriptItem.setImage(scriptImageDesc.createImage());
        editScriptItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                openScript(scriptActivity);
            }
        });
    }
    // edit java
    boolean isJava = designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).isDynamicJava();
    if (!isInstance() && isJava) {
        final Activity javaActivity = (Activity) designerCanvasSelection;
        MenuItem editJavaItem = new MenuItem(popupMenu, SWT.PUSH);
        String artifactTitle = "Java";
        if (process.isReadOnly())
            editJavaItem.setText("View " + artifactTitle);
        else
            editJavaItem.setText("Edit " + artifactTitle);
        ImageDescriptor javaImageDesc = MdwPlugin.getImageDescriptor("icons/java.gif");
        editJavaItem.setImage(javaImageDesc.createImage());
        editJavaItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                openJava(javaActivity);
            }
        });
    }
    // open task instance or process instance
    if (isInstance() && designerCanvasSelection instanceof Activity) {
        final Activity activity = (Activity) designerCanvasSelection;
        if (activity.isManualTask()) {
            if (activity.getTaskInstances() != null && !activity.getTaskInstances().isEmpty()) {
                MenuItem viewTaskItem = new MenuItem(popupMenu, SWT.PUSH);
                viewTaskItem.setText("View Task");
                viewTaskItem.setImage(MdwPlugin.getImageDescriptor("icons/taskmgr.gif").createImage());
                viewTaskItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        TaskInstanceVO taskInstanceVO = null;
                        for (TaskInstanceVO taskInstance : activity.getTaskInstances()) {
                            if (taskInstanceVO == null || taskInstance.getTaskInstanceId() > taskInstanceVO.getTaskInstanceId())
                                taskInstanceVO = taskInstance;
                        }
                        if (taskInstanceVO != null) {
                            boolean assigned = activity.getProject().getUser().getUsername().equals(taskInstanceVO.getTaskClaimUserCuid());
                            String taskInstParams = activity.getProject().getTaskInstancePath(taskInstanceVO.getTaskInstanceId(), assigned);
                            WorkflowPackage packageVersion = activity.getPackage();
                            String packageParam = packageVersion.isDefaultPackage() ? "" : "&packageName=" + packageVersion.getName();
                            WebApp webapp = activity.getProject().checkRequiredVersion(5, 5) ? WebApp.MdwHub : WebApp.TaskManager;
                            WebLaunchActions.getLaunchAction(activity.getProject(), webapp).launch(activity.getProject(), taskInstParams + packageParam);
                        }
                    }
                });
            }
        } else if (activity.isSubProcessInvoke() && activity.getSubProcessInstances() != null && !activity.getSubProcessInstances().isEmpty() && activity.getSubProcessInstances().size() < 50) {
            MenuItem subMenuItem = new MenuItem(popupMenu, SWT.CASCADE);
            subMenuItem.setText("SubProcesses");
            subMenuItem.setImage(MdwPlugin.getImageDescriptor("icons/processfolder.gif").createImage());
            Menu subMenu = new Menu(subMenuItem);
            subMenuItem.setMenu(subMenu);
            for (final ProcessInstanceVO subProcInst : activity.getSubProcessInstances()) {
                MenuItem subProcItem = new MenuItem(subMenu, SWT.PUSH);
                subProcItem.setText("Instance " + subProcInst.getId());
                subProcItem.setImage(MdwPlugin.getImageDescriptor(ICON_PROCESS_GIF).createImage());
                subProcItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        openProcessInstance(subProcInst);
                    }
                });
            }
        }
    }
    // launch process, lock, show instances, find calling processes
    if (!isInstance() && designerCanvasSelection instanceof WorkflowProcess) {
        if (designerCanvasSelection.isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
            MenuItem runItem = new MenuItem(popupMenu, SWT.PUSH);
            runItem.setText("Run...");
            ImageDescriptor runImageDesc = MdwPlugin.getImageDescriptor(ICON_RUN_GIF);
            runItem.setImage(runImageDesc.createImage());
            runItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    launchProcess((WorkflowProcess) designerCanvasSelection, false);
                }
            });
            MenuItem runPageItem = new MenuItem(popupMenu, SWT.PUSH);
            runPageItem.setText("Run Start Page...");
            ImageDescriptor runPageImageDesc = MdwPlugin.getImageDescriptor(ICON_RUN_GIF);
            runPageItem.setImage(runPageImageDesc.createImage());
            runPageItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    launchProcessPage((WorkflowProcess) designerCanvasSelection);
                }
            });
            if (!MdwPlugin.isRcp()) {
                MenuItem debugItem = new MenuItem(popupMenu, SWT.PUSH);
                debugItem.setText("Debug...");
                ImageDescriptor debugImageDesc = MdwPlugin.getImageDescriptor("icons/debug.gif");
                debugItem.setImage(debugImageDesc.createImage());
                debugItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        launchProcess((WorkflowProcess) designerCanvasSelection, true);
                    }
                });
            }
        }
        if (isLockAllowed()) {
            MenuItem lockItem = new MenuItem(popupMenu, SWT.PUSH);
            lockItem.setText(getProcess().isLockedToUser() ? "Unlock Process" : "Lock Process");
            ImageDescriptor lockImageDesc = MdwPlugin.getImageDescriptor("icons/lock.gif");
            lockItem.setImage(lockImageDesc.createImage());
            lockItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    toggleProcessLock(!((WorkflowProcess) designerCanvasSelection).isLockedToUser());
                }
            });
        }
        if (getProcess().getProject().isPureMdw52()) {
            MenuItem callersItem = new MenuItem(popupMenu, SWT.PUSH);
            callersItem.setText("Find Calling Processes");
            ImageDescriptor callersImageDesc = MdwPlugin.getImageDescriptor(ICON_PROCESS_GIF);
            callersItem.setImage(callersImageDesc.createImage());
            callersItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    actionHandler.findCallers(designerCanvasSelection);
                }
            });
            if (getProject().isFilePersist()) {
                MenuItem hierarchyItem = new MenuItem(popupMenu, SWT.PUSH);
                hierarchyItem.setText("Process Hierarchy");
                ImageDescriptor hierarchyImageDesc = MdwPlugin.getImageDescriptor("icons/hierarchy.gif");
                hierarchyItem.setImage(hierarchyImageDesc.createImage());
                hierarchyItem.addSelectionListener(new SelectionAdapter() {

                    @Override
                    public void widgetSelected(SelectionEvent e) {
                        actionHandler.showHierarchy(designerCanvasSelection);
                    }
                });
            }
        }
        MenuItem instancesItem = new MenuItem(popupMenu, SWT.PUSH);
        instancesItem.setText("View Instances");
        ImageDescriptor instancesImageDesc = MdwPlugin.getImageDescriptor("icons/list.gif");
        instancesItem.setImage(instancesImageDesc.createImage());
        instancesItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                showProcessInstances((WorkflowProcess) designerCanvasSelection);
            }
        });
    }
    // launch activity
    if (!isInstance() && designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).getProcess().isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
        MenuItem runItem = new MenuItem(popupMenu, SWT.PUSH);
        runItem.setText("Run from Here...");
        ImageDescriptor runImageDesc = MdwPlugin.getImageDescriptor(ICON_RUN_GIF);
        runItem.setImage(runImageDesc.createImage());
        runItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                launchProcess((Activity) designerCanvasSelection, false);
            }
        });
        if (!MdwPlugin.isRcp()) {
            MenuItem debugItem = new MenuItem(popupMenu, SWT.PUSH);
            debugItem.setText("Debug from Here...");
            ImageDescriptor debugImageDesc = MdwPlugin.getImageDescriptor("icons/debug.gif");
            debugItem.setImage(debugImageDesc.createImage());
            debugItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    launchProcess((Activity) designerCanvasSelection, true);
                }
            });
        }
    }
    // refresh
    if (designerCanvasSelection instanceof WorkflowProcess) {
        MenuItem refreshItem = new MenuItem(popupMenu, SWT.PUSH);
        refreshItem.setText("Refresh");
        ImageDescriptor refreshImageDesc = MdwPlugin.getImageDescriptor("icons/refresh.gif");
        refreshItem.setImage(refreshImageDesc.createImage());
        refreshItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                refresh();
            }
        });
        // open in hub
        if (getProject().checkRequiredVersion(6)) {
            MenuItem hubItem = new MenuItem(popupMenu, SWT.PUSH);
            hubItem.setText("Open in MDWHub");
            ImageDescriptor hubImageDesc = MdwPlugin.getImageDescriptor("icons/webtools.gif");
            hubItem.setImage(hubImageDesc.createImage());
            hubItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    String resourcePath;
                    if (isInstance())
                        resourcePath = "#/workflow/processes/" + getProcess().getProcessInstance().getId();
                    else
                        resourcePath = "#/workflow/definitions/" + getProcess().getPackage().getName() + "/" + getProcess().getName();
                    WebLaunchActions.getLaunchAction(getProject(), WebApp.MdwHub).launch(getProject(), resourcePath);
                }
            });
        }
    }
    // process definition and open calling process instance
    if (isInstance() && designerCanvasSelection instanceof WorkflowProcess) {
        final WorkflowProcess processInstVersion = (WorkflowProcess) designerCanvasSelection;
        MenuItem procDefItem = new MenuItem(popupMenu, SWT.PUSH);
        procDefItem.setText("Process Definition");
        ImageDescriptor procDefImageDesc = MdwPlugin.getImageDescriptor(ICON_PROCESS_GIF);
        procDefItem.setImage(procDefImageDesc.createImage());
        procDefItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                openProcessDefinition(new WorkflowProcess(processInstVersion));
            }
        });
        if (OwnerType.PROCESS_INSTANCE.equals(processInstVersion.getProcessInstance().getOwner())) {
            MenuItem callingInstanceItem = new MenuItem(popupMenu, SWT.PUSH);
            callingInstanceItem.setText("Calling Process Instance");
            ImageDescriptor callerImageDesc = MdwPlugin.getImageDescriptor("icons/launch.gif");
            callingInstanceItem.setImage(callerImageDesc.createImage());
            callingInstanceItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    openCallingInstance();
                }
            });
        }
        MenuItem instanceHierarchyItem = new MenuItem(popupMenu, SWT.PUSH);
        instanceHierarchyItem.setText("Instance Hierarchy");
        ImageDescriptor hierarchyImageDesc = MdwPlugin.getImageDescriptor("icons/hierarchy.gif");
        instanceHierarchyItem.setImage(hierarchyImageDesc.createImage());
        instanceHierarchyItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                actionHandler.showHierarchy(designerCanvasSelection);
            }
        });
        if (OwnerType.ERROR.equals(processInstVersion.getProcessInstance().getOwner())) {
            MenuItem errorTriggerItem = new MenuItem(popupMenu, SWT.PUSH);
            errorTriggerItem.setText("Triggering Process");
            ImageDescriptor errorImageDesc = MdwPlugin.getImageDescriptor("icons/error.gif");
            errorTriggerItem.setImage(errorImageDesc.createImage());
            errorTriggerItem.addSelectionListener(new SelectionAdapter() {

                @Override
                public void widgetSelected(SelectionEvent e) {
                    openTriggeringInstance();
                }
            });
        }
    }
    // retry and skip
    if (isInstance() && designerCanvasSelection instanceof Activity && ((Activity) designerCanvasSelection).hasInstanceInfo() && ((Activity) designerCanvasSelection).getProcess().isUserAuthorized(UserRoleVO.PROCESS_EXECUTION)) {
        MenuItem retryItem = new MenuItem(popupMenu, SWT.PUSH);
        retryItem.setText("Retry");
        ImageDescriptor retryImageDesc = MdwPlugin.getImageDescriptor("icons/retry.gif");
        retryItem.setImage(retryImageDesc.createImage());
        retryItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                PanelBusyIndicator pbi = new PanelBusyIndicator(getDisplay(), getCanvas());
                try {
                    pbi.busyWhile(new Runnable() {

                        public void run() {
                            Activity activity = (Activity) designerCanvasSelection;
                            Shell shell = MdwPlugin.getActiveWorkbenchWindow().getShell();
                            ActivityInstanceVO actInstVO = activity.getInstances().get(activity.getInstances().size() - 1);
                            ActivityInstanceDialog actInstDlg = new ActivityInstanceDialog(shell, activity, actInstVO, Mode.RETRY);
                            actInstDlg.open();
                        }
                    });
                } catch (InvocationTargetException ex) {
                    PluginMessages.uiError(ex, "Retry Activity", getProject());
                }
            }
        });
        MenuItem skipItem = new MenuItem(popupMenu, SWT.PUSH);
        skipItem.setText("Proceed");
        ImageDescriptor skipImageDesc = MdwPlugin.getImageDescriptor("icons/skip.gif");
        skipItem.setImage(skipImageDesc.createImage());
        skipItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                PanelBusyIndicator pbi = new PanelBusyIndicator(getDisplay(), getCanvas());
                try {
                    pbi.busyWhile(new Runnable() {

                        public void run() {
                            Activity activity = (Activity) designerCanvasSelection;
                            Shell shell = MdwPlugin.getActiveWorkbenchWindow().getShell();
                            ActivityInstanceVO actInstVO = activity.getInstances().get(activity.getInstances().size() - 1);
                            ActivityInstanceDialog actInstDlg = new ActivityInstanceDialog(shell, activity, actInstVO, Mode.SKIP);
                            actInstDlg.open();
                        }
                    });
                } catch (InvocationTargetException ex) {
                    PluginMessages.uiError(ex, "Skip Activity", getProject());
                }
            }
        });
    }
    // view owning document
    if (isInstance() && designerCanvasSelection instanceof WorkflowProcess && (OwnerType.DOCUMENT.equals(getProcess().getProcessInstance().getOwner()) || OwnerType.TESTER.equals(getProcess().getProcessInstance().getOwner()))) {
        MenuItem docItem = new MenuItem(popupMenu, SWT.PUSH);
        docItem.setText("View Owning Document");
        ImageDescriptor docImageDesc = MdwPlugin.getImageDescriptor(ICON_DOC_GIF);
        docItem.setImage(docImageDesc.createImage());
        docItem.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent e) {
                PanelBusyIndicator pbi = new PanelBusyIndicator(getDisplay(), getCanvas());
                try {
                    pbi.busyWhile(new Runnable() {

                        public void run() {
                            IStorage storage = new DocumentStorage(getProject(), new DocumentReference(getProcess().getProcessInstance().getOwnerId(), null));
                            final IStorageEditorInput input = new StorageEditorInput(storage);
                            final IWorkbenchPage page = MdwPlugin.getActivePage();
                            if (page != null) {
                                try {
                                    page.openEditor(input, "org.eclipse.ui.DefaultTextEditor");
                                } catch (PartInitException ex) {
                                    PluginMessages.uiError(ex, "View Document", getProject());
                                }
                            }
                        }
                    });
                } catch (InvocationTargetException ex) {
                    PluginMessages.uiError(ex, "View Document", getProject());
                }
            }
        });
    }
    return popupMenu;
}
Also used : DocumentStorage(com.centurylink.mdw.plugin.designer.storage.DocumentStorage) WorkflowPackage(com.centurylink.mdw.plugin.designer.model.WorkflowPackage) Activity(com.centurylink.mdw.plugin.designer.model.Activity) StorageEditorInput(com.centurylink.mdw.plugin.designer.storage.StorageEditorInput) IStorageEditorInput(org.eclipse.ui.IStorageEditorInput) Shell(org.eclipse.swt.widgets.Shell) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ImageDescriptor(org.eclipse.jface.resource.ImageDescriptor) Menu(org.eclipse.swt.widgets.Menu) PartInitException(org.eclipse.ui.PartInitException) WorkflowProcess(com.centurylink.mdw.plugin.designer.model.WorkflowProcess) DocumentReference(com.centurylink.mdw.model.value.variable.DocumentReference) IStorageEditorInput(org.eclipse.ui.IStorageEditorInput) ActivityInstanceDialog(com.centurylink.mdw.plugin.designer.dialogs.ActivityInstanceDialog) ActivityInstanceVO(com.centurylink.mdw.model.value.work.ActivityInstanceVO) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) MenuItem(org.eclipse.swt.widgets.MenuItem) IStorage(org.eclipse.core.resources.IStorage) InvocationTargetException(java.lang.reflect.InvocationTargetException) TaskInstanceVO(com.centurylink.mdw.model.value.task.TaskInstanceVO) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) ProcessInstanceVO(com.centurylink.mdw.model.value.process.ProcessInstanceVO) WebApp(com.centurylink.mdw.plugin.actions.WebLaunchActions.WebApp)

Example 19 with IStorage

use of org.eclipse.core.resources.IStorage in project webtools.sourceediting by eclipse.

the class StorageModelProvider method calculateBaseLocation.

String calculateBaseLocation(IStorageEditorInput input) {
    String location = null;
    if (input instanceof IPathEditorInput) {
        IPath path = ((IPathEditorInput) input).getPath();
        if (path != null) {
            location = path.toString();
        }
    }
    if (location == null && input instanceof ILocationProvider) {
        IPath path = ((ILocationProvider) input).getPath(input);
        if (path != null) {
            location = path.toString();
        }
    }
    if (location == null) {
        try {
            IStorage storage = input.getStorage();
            if (storage != null) {
                IPath storagePath = storage.getFullPath();
                String name = storage.getName();
                if (storagePath != null) {
                    /*
						 * If the path's last segment and the name are
						 * different, the IStorage contract is not being
						 * honored
						 * (https://bugs.eclipse.org/bugs/show_bug.cgi?
						 * id=73098). Favor the name
						 */
                    if (!storagePath.lastSegment().equals(name)) {
                        IPath workingPath = storagePath.addTrailingSeparator();
                        location = workingPath.append(name).toString();
                    } else {
                        location = storagePath.makeAbsolute().toString();
                    }
                }
                if (location == null)
                    location = name;
            }
        } catch (CoreException e) {
            Logger.logException(e);
        } finally {
            if (location == null)
                location = input.getName();
        }
    }
    return location;
}
Also used : IPathEditorInput(org.eclipse.ui.IPathEditorInput) IPath(org.eclipse.core.runtime.IPath) CoreException(org.eclipse.core.runtime.CoreException) ILocationProvider(org.eclipse.ui.editors.text.ILocationProvider) IStorage(org.eclipse.core.resources.IStorage)

Example 20 with IStorage

use of org.eclipse.core.resources.IStorage in project webtools.sourceediting by eclipse.

the class StorageModelProvider method getPersistedEncoding.

/* (non-Javadoc)
	 * @see org.eclipse.ui.editors.text.StorageDocumentProvider#getPersistedEncoding(java.lang.Object)
	 */
protected String getPersistedEncoding(Object element) {
    String charset = super.getPersistedEncoding(element);
    if (charset == null && element instanceof IStorageEditorInput) {
        IStorage storage;
        try {
            storage = ((IStorageEditorInput) element).getStorage();
            if (storage != null && !(storage instanceof IEncodedStorage)) {
                InputStream contents = null;
                try {
                    contents = storage.getContents();
                    if (contents != null) {
                        QualifiedName[] detectionOptions = new QualifiedName[] { IContentDescription.BYTE_ORDER_MARK, IContentDescription.CHARSET };
                        IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(contents, storage.getName(), detectionOptions);
                        if (description != null) {
                            charset = description.getCharset();
                        }
                    }
                } catch (IOException e) {
                } finally {
                    if (contents != null)
                        try {
                            contents.close();
                        } catch (IOException e) {
                        // do nothing
                        }
                }
            }
        } catch (CoreException e) {
            Logger.logException(e);
        }
    }
    return charset;
}
Also used : IStorageEditorInput(org.eclipse.ui.IStorageEditorInput) CoreException(org.eclipse.core.runtime.CoreException) IEncodedStorage(org.eclipse.core.resources.IEncodedStorage) InputStream(java.io.InputStream) QualifiedName(org.eclipse.core.runtime.QualifiedName) IOException(java.io.IOException) IStorage(org.eclipse.core.resources.IStorage) IContentDescription(org.eclipse.core.runtime.content.IContentDescription)

Aggregations

IStorage (org.eclipse.core.resources.IStorage)96 URI (org.eclipse.emf.common.util.URI)32 IFile (org.eclipse.core.resources.IFile)31 IProject (org.eclipse.core.resources.IProject)27 CoreException (org.eclipse.core.runtime.CoreException)25 IResource (org.eclipse.core.resources.IResource)20 Pair (org.eclipse.xtext.util.Pair)16 Test (org.junit.Test)15 IPackageFragmentRoot (org.eclipse.jdt.core.IPackageFragmentRoot)13 IStorageEditorInput (org.eclipse.ui.IStorageEditorInput)12 IPath (org.eclipse.core.runtime.IPath)11 IJavaProject (org.eclipse.jdt.core.IJavaProject)10 IOException (java.io.IOException)7 WrappedException (org.eclipse.emf.common.util.WrappedException)7 ByteArrayInputStream (java.io.ByteArrayInputStream)6 InputStream (java.io.InputStream)6 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)6 GitSynchronizeData (org.eclipse.egit.core.synchronize.dto.GitSynchronizeData)6 GitSynchronizeDataSet (org.eclipse.egit.core.synchronize.dto.GitSynchronizeDataSet)6 Storage2UriMapperJavaImpl (org.eclipse.xtext.ui.resource.Storage2UriMapperJavaImpl)6