This commit was generated by cvs2svn to compensate for changes in r50,
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.ui / src / net / sourceforge / phpdt / internal / debug / ui / PHPExecutionArgumentsPage.java
diff --git a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/PHPExecutionArgumentsPage.java b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/internal/debug/ui/PHPExecutionArgumentsPage.java
new file mode 100644 (file)
index 0000000..bc3200b
--- /dev/null
@@ -0,0 +1,69 @@
+package net.sourceforge.phpdt.internal.debug.ui;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbenchPropertyPage;
+import org.eclipse.ui.dialogs.PropertyPage;
+
+public class PHPExecutionArgumentsPage extends PropertyPage implements IWorkbenchPropertyPage {
+       protected Text interpreterArgumentsText, programArgumentsText;
+       
+       public PHPExecutionArgumentsPage() {
+       }
+
+       protected Control createContents(Composite parent)  {
+               noDefaultAndApplyButton();
+
+               Composite composite = new Composite(parent, SWT.NONE);
+               
+               GridLayout layout = new GridLayout();
+               layout.numColumns = 2;
+               composite.setLayout(layout);
+               new Label(composite, SWT.NONE).setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPArguments.interpreter_args_box_title"));
+               new Label(composite, SWT.NONE).setText("                      ");
+               interpreterArgumentsText = new Text(composite, SWT.BORDER);
+               GridData interpreterArgumentsData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+               interpreterArgumentsData.horizontalSpan = 2;
+               interpreterArgumentsText.setLayoutData(interpreterArgumentsData);
+               interpreterArgumentsText.setText(getArgument("interpreter"));
+               
+               new Label(composite, SWT.NONE).setText(PHPDebugUiMessages.getString("LaunchConfigurationTab.PHPArguments.program_args_box_title"));
+               programArgumentsText = new Text(composite, SWT.BORDER);
+               GridData programArgumentsData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+               programArgumentsData.horizontalSpan = 2;
+               programArgumentsText.setLayoutData(programArgumentsData);
+               programArgumentsText.setText(getArgument("program"));
+               
+               return composite;
+       }
+       
+       protected String getArgument(String name) {
+               String argumentValue = null;
+               try {
+                       argumentValue = ((IFile)getElement()).getPersistentProperty(new QualifiedName("executionArguments", name));
+               } catch(CoreException e) {}
+               
+               return argumentValue != null ? argumentValue : "";
+       }
+       
+       public boolean performOk() {
+               IFile phpFile = (IFile)getElement();
+               try {
+                       phpFile.setPersistentProperty(new QualifiedName("executionArguments", "interpreter"), interpreterArgumentsText.getText());
+                       phpFile.setPersistentProperty(new QualifiedName("executionArguments", "program"), programArgumentsText.getText());
+               } catch(CoreException e) {
+                       PHPDebugUiPlugin.log(e);
+                       return false;
+               }
+               return true;
+       }
+
+}