Search in sources :

Example 51 with IViewPart

use of org.eclipse.ui.IViewPart in project eclipse.platform.text by eclipse.

the class SearchTestPlugin method ensureWelcomePageClosed.

public static void ensureWelcomePageClosed() {
    IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (activeWorkbenchWindow == null)
        return;
    IWorkbenchPage page = activeWorkbenchWindow.getActivePage();
    if (page == null)
        return;
    IWorkbenchPart part = page.getActivePart();
    if (part == null)
        return;
    if ("org.eclipse.ui.internal.introview".equals(part.getSite().getId()))
        page.hideView((IViewPart) part);
}
Also used : IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) IViewPart(org.eclipse.ui.IViewPart) IWorkbenchPart(org.eclipse.ui.IWorkbenchPart) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage)

Example 52 with IViewPart

use of org.eclipse.ui.IViewPart in project linuxtools by eclipse.

the class BaseUITestCase method setUp.

@Before
public void setUp() {
    CPPASTNameBase.sAllowRecursionBindings = false;
    CPPASTNameBase.sAllowNameComputation = false;
    CModelListener.sSuppressUpdateOfLastRecentlyUsed = true;
    final IWorkbenchPage activePage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
    IViewPart view = activePage.findView("org.eclipse.cdt.ui.tests.DOMAST.DOMAST");
    if (view != null) {
        activePage.hideView(view);
    }
}
Also used : IViewPart(org.eclipse.ui.IViewPart) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) Before(org.junit.Before)

Example 53 with IViewPart

use of org.eclipse.ui.IViewPart in project linuxtools by eclipse.

the class GcovTest method testGcovSummary.

private void testGcovSummary(final String filename, String binPath, final boolean testProducedReference) {
    openGcovResult(project.getFile(filename), binPath, true);
    IViewPart vp = window.getActivePage().findView("org.eclipse.linuxtools.gcov.view");
    // No IDs on toolbar items, so explicitly check each one for tooltip texts
    List<String> sortTypes = new ArrayList<>(Arrays.asList("function", "file", "folder"));
    IContributionItem[] items = vp.getViewSite().getActionBars().getToolBarManager().getItems();
    STExportToCSVAction csvAction = null;
    for (IContributionItem item : items) {
        if (item instanceof ActionContributionItem && ((ActionContributionItem) item).getAction() instanceof STExportToCSVAction) {
            csvAction = (STExportToCSVAction) ((ActionContributionItem) item).getAction();
        }
    }
    Assert.assertNotNull("CSV-Export toolbar button does not exist.", csvAction);
    for (IContributionItem item : items) {
        if (item instanceof ActionContributionItem) {
            final IAction action = ((ActionContributionItem) item).getAction();
            for (int i = 0, n = sortTypes.size(); i < n; i++) {
                String sortType = sortTypes.get(i);
                if (action.getText().equals("Sort coverage per " + sortType)) {
                    dumpCSV(action, csvAction, sortType, testProducedReference);
                    if (sortTypes.size() == 1) {
                        return;
                    }
                    sortTypes.remove(i);
                    break;
                }
            }
        }
    }
}
Also used : IViewPart(org.eclipse.ui.IViewPart) ActionContributionItem(org.eclipse.jface.action.ActionContributionItem) STExportToCSVAction(org.eclipse.linuxtools.dataviewers.actions.STExportToCSVAction) IAction(org.eclipse.jface.action.IAction) IContributionItem(org.eclipse.jface.action.IContributionItem) ArrayList(java.util.ArrayList)

Example 54 with IViewPart

use of org.eclipse.ui.IViewPart in project linuxtools by eclipse.

the class ContainerLauncher method launch.

/**
 * Perform a launch of a command in a container and output stdout/stderr to
 * console.
 *
 * @param id
 *            - id of caller to use to distinguish console owner
 * @param listener
 *            - optional listener of the run console
 * @param connectionUri
 *            - the specified connection to use
 * @param image
 *            - the image to use
 * @param cmdList
 *            - command to run as list of String
 * @param workingDir
 *            - working directory or null
 * @param additionalDirs
 *            - additional directories to mount or null
 * @param origEnv
 *            - original environment if we are appending to our existing
 *            environment
 * @param envMap
 *            - map of environment variable settings
 * @param ports
 *            - ports to expose
 * @param keep
 *            - keep container after running
 * @param stdinSupport
 *            - true if stdin support is required, false otherwise
 * @param privilegedMode
 *            - true if privileged mode is required, false otherwise
 * @param labels
 *            - Map of labels for the container
 * @param seccomp
 *            - seccomp profile
 * @since 4.0
 */
public void launch(String id, IContainerLaunchListener listener, final String connectionUri, String image, List<String> cmdList, String workingDir, List<String> additionalDirs, Map<String, String> origEnv, Map<String, String> envMap, List<String> ports, boolean keep, boolean stdinSupport, boolean privilegedMode, Map<String, String> labels, String seccomp) {
    // $NON-NLS-1$
    final String LAUNCH_TITLE = "ContainerLaunch.title";
    // $NON-NLS-1$
    final String LAUNCH_EXITED_TITLE = "ContainerLaunchExited.title";
    final List<String> env = new ArrayList<>();
    env.addAll(toList(origEnv));
    env.addAll(toList(envMap));
    final Set<String> exposedPorts = new HashSet<>();
    final Map<String, List<IDockerPortBinding>> portBindingsMap = new HashMap<>();
    if (ports != null) {
        for (String port : ports) {
            port = port.trim();
            if (port.length() > 0) {
                // $NON-NLS-1$
                String[] segments = port.split(":");
                if (segments.length == 1) {
                    // containerPort
                    exposedPorts.add(segments[0]);
                    portBindingsMap.put(segments[0], Arrays.asList((IDockerPortBinding) new DockerPortBinding("", // $NON-NLS-1$ //$NON-NLS-2$
                    "")));
                } else if (segments.length == 2) {
                    // hostPort:containerPort
                    exposedPorts.add(segments[1]);
                    portBindingsMap.put(segments[1], Arrays.asList((IDockerPortBinding) new DockerPortBinding("", // $NON-NLS-1$ //$NON-NLS-2$
                    segments[0])));
                } else if (segments.length == 3) {
                    // either
                    // ip:hostPort:containerPort
                    // or ip::containerPort
                    exposedPorts.add(segments[1]);
                    if (segments[1].isEmpty()) {
                        portBindingsMap.put(segments[2], Arrays.asList((IDockerPortBinding) new DockerPortBinding("", // $NON-NLS-1$ //$NON-NLS-2$
                        segments[0])));
                    } else {
                        portBindingsMap.put(segments[2], Arrays.asList((IDockerPortBinding) new DockerPortBinding(segments[0], // $NON-NLS-1$ //$NON-NLS-2$
                        segments[1])));
                    }
                }
            }
        }
    }
    // Note we only pass volumes to the config if we have a
    // remote daemon. Local mounted volumes are passed
    // via the HostConfig binds setting
    DockerContainerConfig.Builder builder = new DockerContainerConfig.Builder().openStdin(stdinSupport).cmd(cmdList).image(image).workingDir(workingDir);
    // option
    if (listener != null && listener.getClass().getName().equals("org.eclipse.cdt.internal.docker.launcher.ContainerLaunchConfigurationDelegate$StartGdbServerJob")) {
        builder = builder.tty(true);
    }
    // add any exposed ports as needed
    if (exposedPorts.size() > 0)
        builder = builder.exposedPorts(exposedPorts);
    // add any labels if specified
    if (labels != null)
        builder = builder.labels(labels);
    if (!DockerConnectionManager.getInstance().hasConnections()) {
        Display.getDefault().syncExec(() -> MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DVMessages.getString(ERROR_LAUNCHING_CONTAINER), DVMessages.getString(ERROR_NO_CONNECTIONS)));
        return;
    }
    // Try and use the specified connection that was used before,
    // otherwise, open an error
    final IDockerConnection connection = DockerConnectionManager.getInstance().getConnectionByUri(connectionUri);
    if (connection == null) {
        Display.getDefault().syncExec(() -> MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DVMessages.getString(ERROR_LAUNCHING_CONTAINER), DVMessages.getFormattedString(ERROR_NO_CONNECTION_WITH_URI, connectionUri)));
        return;
    }
    // if connection is not open, force it to be by fetching images
    if (!connection.isOpen()) {
        connection.getImages();
    }
    DockerHostConfig.Builder hostBuilder = new DockerHostConfig.Builder().privileged(privilegedMode);
    // ptrace with gdbserver
    if (seccomp != null) {
        hostBuilder.securityOpt(seccomp);
    }
    final Map<String, String> remoteVolumes = new HashMap<>();
    if (!((DockerConnection) connection).isLocal()) {
        @SuppressWarnings("rawtypes") final Map<String, Map> volumes = new HashMap<>();
        // the host data over before starting.
        if (additionalDirs != null) {
            for (String dir : additionalDirs) {
                remoteVolumes.put(dir, dir);
                volumes.put(dir, new HashMap<>());
            }
        }
        if (workingDir != null) {
            // $NON-NLS-1$
            remoteVolumes.put(workingDir, workingDir);
            volumes.put(workingDir, new HashMap<>());
        }
        builder = builder.volumes(volumes);
    } else {
        // Running daemon on local host.
        // Add mounts for any directories we need to run the executable.
        // When we add mount points, we need entries of the form:
        // hostname:mountname:Z.
        // In our case, we want all directories mounted as-is so the
        // executable will run as the user expects.
        final List<String> volumes = new ArrayList<>();
        if (additionalDirs != null) {
            for (String dir : additionalDirs) {
                // $NON-NLS-1$ //$NON-NLS-2$
                volumes.add(dir + ":" + dir + ":Z");
            }
        }
        if (workingDir != null) {
            // $NON-NLS-1$ //$NON-NLS-2$
            volumes.add(workingDir + ":" + workingDir + ":Z");
        }
        hostBuilder = hostBuilder.binds(volumes);
    }
    final DockerContainerConfig config = builder.build();
    // add any port bindings if specified
    if (portBindingsMap.size() > 0)
        hostBuilder = hostBuilder.portBindings(portBindingsMap);
    final IDockerHostConfig hostConfig = hostBuilder.build();
    final String imageName = image;
    final boolean keepContainer = keep;
    final String consoleId = id;
    final IContainerLaunchListener containerListener = listener;
    Thread t = new Thread(() -> {
        // create the container
        String containerId = null;
        try {
            containerId = ((DockerConnection) connection).createContainer(config, hostConfig, null);
            if (!((DockerConnection) connection).isLocal()) {
                // data over from the host.
                if (!remoteVolumes.isEmpty()) {
                    CopyVolumesJob job = new CopyVolumesJob(remoteVolumes, connection, containerId);
                    job.schedule();
                    job.join();
                    if (job.getResult() != Status.OK_STATUS)
                        return;
                }
            }
            if (config.tty()) {
                // We need tty support to handle issue with Docker daemon
                // not always outputting in time (e.g. we might get an
                // output line after the process has exited which can be
                // too late to show or it might get displayed in a wrong
                // order in relation to other output. We also want the
                // output to ultimately show up in the Console View.
                OutputStream stream = null;
                RunConsole oldConsole = getConsole();
                final RunConsole rc = RunConsole.findConsole(containerId, consoleId);
                setConsole(rc);
                rc.clearConsole();
                if (oldConsole != null)
                    RunConsole.removeConsole(oldConsole);
                Display.getDefault().syncExec(() -> rc.setTitle(Messages.getFormattedString(LAUNCH_TITLE, new String[] { cmdList.get(0), imageName })));
                if (rc != null) {
                    stream = rc.getOutputStream();
                }
                // We want terminal support, but we want to output to the
                // RunConsole.
                // To do this, we create a DockerConsoleOutputStream which
                // we
                // hook into the TM Terminal via stdout and stderr output
                // listeners.
                // These listeners will output to the
                // DockerConsoleOutputStream which
                // will in turn output to the RunConsole. See
                // DockerConnection.openTerminal().
                DockerConsoleOutputStream out = new DockerConsoleOutputStream(stream);
                RunConsole.attachToTerminal(connection, containerId, out);
                if (containerListener != null) {
                    out.addConsoleListener(new RunConsoleListenerBridge(containerListener));
                }
                ((DockerConnection) connection).startContainer(containerId, null, null);
                IDockerContainerInfo info = ((DockerConnection) connection).getContainerInfo(containerId);
                if (containerListener != null) {
                    containerListener.containerInfo(info);
                }
                // Wait for the container to finish
                final IDockerContainerExit status = ((DockerConnection) connection).waitForContainer(containerId);
                Display.getDefault().syncExec(() -> {
                    rc.setTitle(Messages.getFormattedString(LAUNCH_EXITED_TITLE, new String[] { status.statusCode().toString(), cmdList.get(0), imageName }));
                    rc.showConsole();
                    // We used a TM Terminal to receive the output of the
                    // session and
                    // then sent the output to the RunConsole. Remove the
                    // terminal
                    // tab that got created now that we are finished and all
                    // data is shown
                    // in Console View.
                    IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
                    IViewPart terminalView = page.findView("org.eclipse.tm.terminal.view.ui.TerminalsView");
                    CTabFolder ctabfolder = terminalView.getAdapter(CTabFolder.class);
                    if (ctabfolder != null) {
                        CTabItem[] items = ctabfolder.getItems();
                        for (CTabItem item : items) {
                            if (item.getText().endsWith(info.name())) {
                                item.dispose();
                                break;
                            }
                        }
                    }
                });
                // finished
                if (containerListener != null)
                    containerListener.done();
                if (!keepContainer) {
                    ((DockerConnection) connection).removeContainer(containerId);
                }
            } else {
                OutputStream stream = null;
                RunConsole oldConsole = getConsole();
                final RunConsole rc = RunConsole.findConsole(containerId, consoleId);
                setConsole(rc);
                rc.clearConsole();
                if (oldConsole != null)
                    RunConsole.removeConsole(oldConsole);
                Display.getDefault().syncExec(() -> rc.setTitle(Messages.getFormattedString(LAUNCH_TITLE, new String[] { cmdList.get(0), imageName })));
                // if (!rc.isAttached()) {
                rc.attachToConsole(connection, containerId);
                // }
                if (rc != null) {
                    stream = rc.getOutputStream();
                    if (containerListener != null) {
                        ((ConsoleOutputStream) stream).addConsoleListener(containerListener);
                    }
                }
                // Create a unique logging thread id which has container id
                // and console id
                String loggingId = containerId + "." + consoleId;
                ((DockerConnection) connection).startContainer(containerId, loggingId, stream);
                if (rc != null)
                    rc.showConsole();
                if (containerListener != null) {
                    IDockerContainerInfo info = ((DockerConnection) connection).getContainerInfo(containerId);
                    containerListener.containerInfo(info);
                }
                // Wait for the container to finish
                final IDockerContainerExit status = ((DockerConnection) connection).waitForContainer(containerId);
                Display.getDefault().syncExec(() -> {
                    rc.setTitle(Messages.getFormattedString(LAUNCH_EXITED_TITLE, new String[] { status.statusCode().toString(), cmdList.get(0), imageName }));
                    rc.showConsole();
                });
                // finished
                if (containerListener != null)
                    containerListener.done();
                if (!keepContainer) {
                    // Drain the logging thread before we remove the
                    // container (we need to use the logging id)
                    Thread.sleep(1000);
                    ((DockerConnection) connection).stopLoggingThread(loggingId);
                    // Look for any Display Log console that the user may
                    // have opened which would be
                    // separate and make sure it is removed as well
                    RunConsole rc2 = RunConsole.findConsole(((DockerConnection) connection).getContainer(containerId));
                    if (rc2 != null)
                        RunConsole.removeConsole(rc2);
                    ((DockerConnection) connection).removeContainer(containerId);
                }
            }
        } catch (final DockerException e2) {
            // error in creation, try and remove Container if possible
            if (!keepContainer && containerId != null) {
                try {
                    ((DockerConnection) connection).removeContainer(containerId);
                } catch (DockerException | InterruptedException e1) {
                // ignore exception
                }
            }
            Display.getDefault().syncExec(() -> MessageDialog.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DVMessages.getFormattedString(ERROR_CREATING_CONTAINER, imageName), e2.getMessage()));
        } catch (InterruptedException e3) {
        // for now
        // do nothing
        }
        ((DockerConnection) connection).getContainers(true);
    });
    t.start();
}
Also used : IViewPart(org.eclipse.ui.IViewPart) CTabFolder(org.eclipse.swt.custom.CTabFolder) HashMap(java.util.HashMap) DockerConsoleOutputStream(org.eclipse.linuxtools.internal.docker.core.DockerConsoleOutputStream) ObjectOutputStream(java.io.ObjectOutputStream) OutputStream(java.io.OutputStream) ConsoleOutputStream(org.eclipse.linuxtools.internal.docker.ui.consoles.ConsoleOutputStream) FileOutputStream(java.io.FileOutputStream) ArrayList(java.util.ArrayList) IDockerHostConfig(org.eclipse.linuxtools.docker.core.IDockerHostConfig) IDockerContainerExit(org.eclipse.linuxtools.docker.core.IDockerContainerExit) CTabItem(org.eclipse.swt.custom.CTabItem) IDockerConnection(org.eclipse.linuxtools.docker.core.IDockerConnection) DockerConnection(org.eclipse.linuxtools.internal.docker.core.DockerConnection) RunConsole(org.eclipse.linuxtools.internal.docker.ui.consoles.RunConsole) IDockerPortBinding(org.eclipse.linuxtools.docker.core.IDockerPortBinding) IDockerConnection(org.eclipse.linuxtools.docker.core.IDockerConnection) List(java.util.List) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) LinkedHashSet(java.util.LinkedHashSet) IDockerHostConfig(org.eclipse.linuxtools.docker.core.IDockerHostConfig) DockerHostConfig(org.eclipse.linuxtools.internal.docker.core.DockerHostConfig) DockerException(org.eclipse.linuxtools.docker.core.DockerException) IDockerPortBinding(org.eclipse.linuxtools.docker.core.IDockerPortBinding) DockerPortBinding(org.eclipse.linuxtools.internal.docker.core.DockerPortBinding) DockerConsoleOutputStream(org.eclipse.linuxtools.internal.docker.core.DockerConsoleOutputStream) ConsoleOutputStream(org.eclipse.linuxtools.internal.docker.ui.consoles.ConsoleOutputStream) DockerContainerConfig(org.eclipse.linuxtools.internal.docker.core.DockerContainerConfig) IDockerContainerConfig(org.eclipse.linuxtools.docker.core.IDockerContainerConfig) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) IDockerContainerInfo(org.eclipse.linuxtools.docker.core.IDockerContainerInfo) Map(java.util.Map) HashMap(java.util.HashMap) DockerConsoleOutputStream(org.eclipse.linuxtools.internal.docker.core.DockerConsoleOutputStream)

Example 55 with IViewPart

use of org.eclipse.ui.IViewPart in project translationstudio8 by heartsome.

the class SelectProjectOrSourcePropertyTester method test.

public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
    IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
    if (window != null) {
        IWorkbenchPage page = window.getActivePage();
        if (page != null) {
            if (page.getActivePartReference() == null) {
                return false;
            }
            String partId = page.getActivePartReference().getId();
            if (partId.equals("net.heartsome.cat.common.ui.navigator.view")) {
                // 导航视图处于激活状态
                IViewPart viewPart = page.findView("net.heartsome.cat.common.ui.navigator.view");
                StructuredSelection selection = (StructuredSelection) viewPart.getSite().getSelectionProvider().getSelection();
                if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
                    List<?> lstObj = ((IStructuredSelection) selection).toList();
                    for (Object obj : lstObj) {
                        if (obj instanceof IFile) {
                            IFile file = (IFile) obj;
                            String xlfFolderPath = file.getProject().getFullPath().append(Constant.FOLDER_SRC).toOSString();
                            if (!file.getFullPath().toOSString().startsWith(xlfFolderPath)) {
                                return false;
                            }
                        } else if (obj instanceof IFolder) {
                            IFolder folder = (IFolder) obj;
                            String xlfFolderPath = folder.getProject().getFullPath().append(Constant.FOLDER_SRC).toOSString();
                            if (!folder.getFullPath().toOSString().startsWith(xlfFolderPath)) {
                                return false;
                            }
                        }
                    }
                } else {
                    return false;
                }
            } else {
                return false;
            }
        } else {
            return false;
        }
    } else {
        return false;
    }
    return true;
}
Also used : IWorkbenchWindow(org.eclipse.ui.IWorkbenchWindow) IViewPart(org.eclipse.ui.IViewPart) IFile(org.eclipse.core.resources.IFile) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) IWorkbenchPage(org.eclipse.ui.IWorkbenchPage) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) IFolder(org.eclipse.core.resources.IFolder)

Aggregations

IViewPart (org.eclipse.ui.IViewPart)104 IWorkbenchPage (org.eclipse.ui.IWorkbenchPage)58 IWorkbenchWindow (org.eclipse.ui.IWorkbenchWindow)39 IEditorPart (org.eclipse.ui.IEditorPart)34 PartInitException (org.eclipse.ui.PartInitException)28 IViewReference (org.eclipse.ui.IViewReference)26 ArrayList (java.util.ArrayList)16 IFile (org.eclipse.core.resources.IFile)15 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)15 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)15 IEditorInput (org.eclipse.ui.IEditorInput)13 IWorkbenchPart (org.eclipse.ui.IWorkbenchPart)13 ICubridNode (com.cubrid.common.ui.spi.model.ICubridNode)10 IXliffEditor (net.heartsome.cat.ts.ui.editors.IXliffEditor)10 ITermViewPart (net.heartsome.cat.ts.ui.view.ITermViewPart)10 Shell (org.eclipse.swt.widgets.Shell)9 IEditorReference (org.eclipse.ui.IEditorReference)9 XLFHandler (net.heartsome.cat.ts.core.file.XLFHandler)8 XLIFFEditorImplWithNatTable (net.heartsome.cat.ts.ui.xliffeditor.nattable.editor.XLIFFEditorImplWithNatTable)8 IProject (org.eclipse.core.resources.IProject)8