blob: 93ce6a673a7ef07c2680c013f580a064d5030766 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Pierre Allard,
* Regent L'Archeveque,
* Olivier L. Larouche - initial API and implementation
*
* SPDX-License-Identifier: EPL-1.0
*
*******************************************************************************/
package org.eclipse.apogy.core.invocator.ui.composites;
import org.eclipse.apogy.core.invocator.AbstractProgramRuntime;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class AbstractProgramRuntimeControlComposite extends Composite {
private static final Logger Logger = LoggerFactory.getLogger(AbstractProgramRuntimeControlComposite.class);
protected AbstractProgramRuntime abstractProgramRuntime;
private final Button initButton;
private final Button terminateButton;
private final Button resumeButton;
private final Button suspendButton;
private final Button stepIntoButton;
private final Button stepOverButton;
private final Button stepReturnButton;
public AbstractProgramRuntimeControlComposite(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout(7, false));
this.initButton = new Button(this, SWT.PUSH);
this.initButton.setText("Init");
this.initButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.init();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
this.terminateButton = new Button(this, SWT.PUSH);
this.terminateButton.setText("Terminate");
this.terminateButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.terminate();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
this.resumeButton = new Button(this, SWT.PUSH);
this.resumeButton.setText("Resume");
this.resumeButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.resume();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
this.suspendButton = new Button(this, SWT.PUSH);
this.suspendButton.setText("Suspend");
this.suspendButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.suspend();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
this.stepIntoButton = new Button(this, SWT.PUSH);
this.stepIntoButton.setText("Step Into");
this.stepIntoButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.stepInto();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
this.stepOverButton = new Button(this, SWT.PUSH);
this.stepOverButton.setText("Step Into");
this.stepOverButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.stepOver();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
this.stepReturnButton = new Button(this, SWT.PUSH);
this.stepReturnButton.setText("Step Into");
this.stepReturnButton.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent arg0) {
if (AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime != null) {
try {
AbstractProgramRuntimeControlComposite.this.abstractProgramRuntime.stepReturn();
} catch (Throwable t) {
Logger.error(t.getMessage(), t);
}
}
}
@Override
public void widgetDefaultSelected(SelectionEvent arg0) {
}
});
}
public AbstractProgramRuntime getAbstractProgramRuntime() {
return this.abstractProgramRuntime;
}
public void setAbstractProgramRuntime(AbstractProgramRuntime abstractProgramRuntime) {
this.abstractProgramRuntime = abstractProgramRuntime;
}
}