Search in sources :

Example 6 with LaunchElement

use of org.eclipse.titan.executor.views.executormonitor.LaunchElement in project titan.EclipsePlug-ins by eclipse.

the class TestExecutionView method selectionChanged.

@Override
public void selectionChanged(final IWorkbenchPart part, final ISelection selection) {
    if (this.equals(part) || !(selection instanceof IStructuredSelection) || null == viewer.getContentProvider()) {
        return;
    }
    ITreeLeaf selectedElement;
    if (selection.isEmpty()) {
        selectedElement = null;
    } else {
        selectedElement = (ITreeLeaf) ((IStructuredSelection) selection).getFirstElement();
    }
    if (null != selectedElement) {
        while (!(selectedElement instanceof LaunchElement)) {
            selectedElement = selectedElement.parent();
        }
    }
    if (null != actualInput && actualInput.equals(selectedElement)) {
        viewer.refresh(false);
    } else {
        viewer.setInput(selectedElement);
        actualInput = selectedElement;
    }
    if (isFollowing && null != actualInput && actualInput instanceof LaunchElement) {
        final List<ITreeLeaf> children = ((LaunchElement) actualInput).children();
        for (ITreeLeaf aChildren : children) {
            final BaseExecutor executor = ((MainControllerElement) aChildren).executor();
            if (null != executor && !executor.executedTests().isEmpty()) {
                viewer.reveal(executor.executedTests().get(executor.executedTests().size() - 1));
            }
        }
    }
    createTooltip(selectedElement);
    if (null == selectedElement) {
        saveAsAction.setEnabled(false);
    } else {
        saveAsAction.setEnabled(true);
    }
}
Also used : BaseExecutor(org.eclipse.titan.executor.executors.BaseExecutor) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ITreeLeaf(org.eclipse.titan.executor.executors.ITreeLeaf) LaunchElement(org.eclipse.titan.executor.views.executormonitor.LaunchElement) MainControllerElement(org.eclipse.titan.executor.views.executormonitor.MainControllerElement)

Example 7 with LaunchElement

use of org.eclipse.titan.executor.views.executormonitor.LaunchElement in project titan.EclipsePlug-ins by eclipse.

the class NotificationView method selectionChanged.

@Override
public void selectionChanged(final IWorkbenchPart part, final ISelection selection) {
    if (this.equals(part) || !(selection instanceof IStructuredSelection) || null == viewer.getContentProvider()) {
        return;
    }
    ITreeLeaf selectedElement;
    if (selection.isEmpty()) {
        selectedElement = null;
    } else {
        selectedElement = (ITreeLeaf) ((IStructuredSelection) selection).getFirstElement();
    }
    if (null != selectedElement) {
        while (!(selectedElement instanceof LaunchElement)) {
            selectedElement = selectedElement.parent();
        }
    }
    if (null != actualInput && actualInput.equals(selectedElement)) {
        viewer.refresh(false);
    } else {
        viewer.setInput(selectedElement);
        actualInput = selectedElement;
    }
    if (null == selectedElement) {
        setTitleToolTip(null);
        clearAction.setEnabled(false);
        saveAsAction.setEnabled(false);
    } else {
        setTitleToolTip(selectedElement.name());
        clearAction.setEnabled(true);
        saveAsAction.setEnabled(true);
    }
    if (isFollowing && null != actualInput && actualInput instanceof LaunchElement) {
        final List<ITreeLeaf> children = ((LaunchElement) actualInput).children();
        for (ITreeLeaf aChildren : children) {
            final BaseExecutor executor = ((MainControllerElement) aChildren).executor();
            if (null != executor && !executor.notifications().isEmpty()) {
                viewer.reveal(executor.notifications().get(executor.notifications().size() - 1));
            }
        }
    }
}
Also used : BaseExecutor(org.eclipse.titan.executor.executors.BaseExecutor) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ITreeLeaf(org.eclipse.titan.executor.executors.ITreeLeaf) LaunchElement(org.eclipse.titan.executor.views.executormonitor.LaunchElement) MainControllerElement(org.eclipse.titan.executor.views.executormonitor.MainControllerElement)

Example 8 with LaunchElement

use of org.eclipse.titan.executor.views.executormonitor.LaunchElement in project titan.EclipsePlug-ins by eclipse.

the class NotificationView method saveLaunchElementAs.

/**
 * Saves the contents of a tree starting at the provided launch config node.
 *
 * @param shell the shell to be used to display dialogs.
 * @param actualInput the launch configuration to start from.
 */
public static void saveLaunchElementAs(final Shell shell, final ITreeLeaf actualInput) {
    final FileDialog dialog = new FileDialog(shell, SWT.NONE);
    dialog.setFilterExtensions(new String[] { "log" });
    final String filePath = dialog.open();
    if (null == filePath) {
        return;
    }
    final File file = new File(filePath);
    if (file.exists()) {
        if (!file.canWrite()) {
            ErrorDialog.openError(shell, "Read-only file", "The file is read-only, please choose another file", Status.OK_STATUS);
            return;
        }
    } else {
        try {
            file.createNewFile();
        } catch (IOException e) {
            ErrorDialog.openError(shell, "Can not create file", "The file could not be created and will not be saved", Status.OK_STATUS);
            return;
        }
    }
    if (null == actualInput || !(actualInput instanceof LaunchElement)) {
        // nothing or wrong kind of element selected
        return;
    }
    PrintWriter out = null;
    try {
        out = new PrintWriter(new FileWriter(file));
        final List<ITreeLeaf> children = ((LaunchElement) actualInput).children();
        for (ITreeLeaf aChildren : children) {
            final BaseExecutor executor = ((MainControllerElement) aChildren).executor();
            if (null != executor) {
                List<Notification> tempList = executor.notifications();
                for (Notification aTempList : tempList) {
                    out.println(aTempList.toString());
                }
            }
        }
    } catch (IOException e) {
        ErrorDialog.openError(shell, "Can not write the file", "An error occured while writing to the file\n" + filePath, Status.OK_STATUS);
        return;
    } finally {
        IOUtils.closeQuietly(out);
    }
    final IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
    final IFile[] outputFiles = root.findFilesForLocationURI(URIUtil.toURI(filePath));
    ResourceUtils.refreshResources(Arrays.asList(outputFiles));
}
Also used : IFile(org.eclipse.core.resources.IFile) FileWriter(java.io.FileWriter) IOException(java.io.IOException) IWorkspaceRoot(org.eclipse.core.resources.IWorkspaceRoot) BaseExecutor(org.eclipse.titan.executor.executors.BaseExecutor) ITreeLeaf(org.eclipse.titan.executor.executors.ITreeLeaf) FileDialog(org.eclipse.swt.widgets.FileDialog) IFile(org.eclipse.core.resources.IFile) File(java.io.File) LaunchElement(org.eclipse.titan.executor.views.executormonitor.LaunchElement) PrintWriter(java.io.PrintWriter) MainControllerElement(org.eclipse.titan.executor.views.executormonitor.MainControllerElement)

Example 9 with LaunchElement

use of org.eclipse.titan.executor.views.executormonitor.LaunchElement in project titan.EclipsePlug-ins by eclipse.

the class JniExecutor method terminate.

@Override
public void terminate(final boolean external) {
    McStateEnum state = jnimw.get_state();
    if (MC_INACTIVE == state.getValue()) {
        setRunning(false);
        isTerminated = true;
        if (mainControllerRoot != null) {
            mainControllerRoot.setTerminated();
            LaunchElement launchElement = null;
            for (Map.Entry<ILaunch, BaseExecutor> entry : ExecutorStorage.getExecutorMap().entrySet()) {
                if (entry.getValue().equals(mainControllerRoot.executor()) && LaunchStorage.getLaunchElementMap().containsKey(entry.getKey())) {
                    launchElement = LaunchStorage.getLaunchElementMap().get(entry.getKey());
                }
            }
            if (launchElement != null) {
                launchElement.setTerminated();
            }
            if (Activator.getMainView() != null) {
                Activator.getMainView().refreshAll();
            }
        }
    } else {
        shutdownSession();
    }
    updateGUI();
}
Also used : BaseExecutor(org.eclipse.titan.executor.executors.BaseExecutor) ILaunch(org.eclipse.debug.core.ILaunch) McStateEnum(org.eclipse.titan.executor.jni.McStateEnum) Map(java.util.Map) HashMap(java.util.HashMap) LaunchElement(org.eclipse.titan.executor.views.executormonitor.LaunchElement)

Example 10 with LaunchElement

use of org.eclipse.titan.executor.views.executormonitor.LaunchElement in project titan.EclipsePlug-ins by eclipse.

the class SingleExecutor method startSession.

@Override
public void startSession(final ILaunch arg2) {
    super.startSession(arg2);
    if (automaticExecuteSectionExecution) {
        if (!LaunchStorage.getLaunchElementMap().containsKey(arg2)) {
            ILaunchConfiguration launchConfiguration = arg2.getLaunchConfiguration();
            LaunchElement launchElement = new LaunchElement(launchConfiguration.getName(), arg2);
            LaunchStorage.registerLaunchElement(launchElement);
            ExecutorStorage.registerExecutorStorage(launchElement);
        }
        startExecution(true);
    }
}
Also used : ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) LaunchElement(org.eclipse.titan.executor.views.executormonitor.LaunchElement)

Aggregations

LaunchElement (org.eclipse.titan.executor.views.executormonitor.LaunchElement)12 BaseExecutor (org.eclipse.titan.executor.executors.BaseExecutor)7 ITreeLeaf (org.eclipse.titan.executor.executors.ITreeLeaf)7 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)4 MainControllerElement (org.eclipse.titan.executor.views.executormonitor.MainControllerElement)4 ILaunch (org.eclipse.debug.core.ILaunch)3 File (java.io.File)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 Map (java.util.Map)2 IFile (org.eclipse.core.resources.IFile)2 ILaunchConfiguration (org.eclipse.debug.core.ILaunchConfiguration)2 ISelection (org.eclipse.jface.viewers.ISelection)2 FileWriter (java.io.FileWriter)1 PrintWriter (java.io.PrintWriter)1 HashMap (java.util.HashMap)1 List (java.util.List)1 IWorkspaceRoot (org.eclipse.core.resources.IWorkspaceRoot)1 CoreException (org.eclipse.core.runtime.CoreException)1 DebugException (org.eclipse.debug.core.DebugException)1