/**
* Copyright (c) 2009-2011, The HATS Consortium. All rights reserved.
* This file is licensed under the terms of the Modified BSD License.
*/
package org.absmodels.abs.plugin.debug.perspective;
import static org.absmodels.abs.plugin.actions.ActionUtils.getActiveFile;
import static org.absmodels.abs.plugin.debug.DebugUtils.getSchedulerRef;
import org.eclipse.core.resources.IFile;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PlatformUI;
/**
* Dialog for runToLine functionality of the debugger.
* @author tfischer
*
*/
public class LineNumberDialog extends Dialog{
private Spinner line;
protected LineNumberDialog(Shell parentShell) {
super(parentShell);
}
@Override
protected Control createDialogArea(Composite parent) {
GridLayout gridLayout = new GridLayout(1, false);
Composite composite = (Composite)super.createDialogArea(parent);
composite.setLayout(gridLayout);
Composite stepsContainer = new Composite(composite, SWT.NONE);
stepsContainer.setLayout(gridLayout);
line = new Spinner(stepsContainer, SWT.NONE);
line.setMinimum(0);
line.setMaximum(Integer.MAX_VALUE);
line.setIncrement(1);
line.setSelection(0);
return composite;
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText("Run to line");
}
@Override
protected void okPressed() {
int n = line.getSelection();
IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
IFile activeFile = getActiveFile(activeEditor);
getSchedulerRef().doRunToLine(activeFile.getLocation().toFile().getAbsolutePath(), n);
super.okPressed();
}
}