[jboss-svn-commits] JBL Code SVN: r9422 - in labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin: forms and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Feb 10 03:14:27 EST 2007


Author: mshaw
Date: 2007-02-10 03:14:26 -0500 (Sat, 10 Feb 2007)
New Revision: 9422

Added:
   labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/MasterDetailsPage.java
   labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuiteDetailsPage.java
   labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuitePropertiesBlock.java
Modified:
   labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/editors/RtlFormEditor.java
   labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/InputForm.java
   labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/resources/messages.properties
Log:


Modified: labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/editors/RtlFormEditor.java
===================================================================
--- labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/editors/RtlFormEditor.java	2007-02-10 05:45:24 UTC (rev 9421)
+++ labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/editors/RtlFormEditor.java	2007-02-10 08:14:26 UTC (rev 9422)
@@ -1,16 +1,26 @@
 package org.drools.testing.plugin.editors;
 
+import java.io.BufferedReader;
+import java.io.FileReader;
+
+import org.drools.testing.core.beans.TestSuite;
 import org.drools.testing.plugin.forms.InputForm;
-import org.drools.testing.plugin.resources.TestResourcesPlugin;
+import org.drools.testing.plugin.forms.MasterDetailsPage;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.editors.text.TextEditor;
 import org.eclipse.ui.forms.editor.FormEditor;
 import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.part.FileEditorInput;
+import org.exolab.castor.xml.Unmarshaller;
 
 public class RtlFormEditor extends FormEditor {
 
+	private TestSuite testSuite;
+	
 	public RtlFormEditor() {
 		
 	}
@@ -21,10 +31,12 @@
 	}
 
 	protected void addPages() {
+		initialiseModel();
 		try {
 			TextEditor editor = new TextEditor();
 			int index = addPage(editor, getEditorInput());
 			setPageText(index, EditorConstants.EditorPageTitles.TITLE_FREE_FORM);
+			addPage(new MasterDetailsPage(this));
 			addPage(new InputForm(this));
 		}
 		catch (PartInitException e) {
@@ -33,13 +45,36 @@
 	}
 
 	public void doSave(IProgressMonitor monitor) {
+		getEditor(0).doSave(monitor);
 	}
 
 	public void doSaveAs() {
+		IEditorPart editor = getEditor(0);
+		editor.doSaveAs();
+		setInput(editor.getEditorInput());
 	}
 
 	public boolean isSaveAsAllowed() {
 		return false;
 	}
 	
+	private void initialiseModel () {
+		try {
+			FileEditorInput fileEditorInput = ((FileEditorInput)getEditorInput());
+			BufferedReader br = new BufferedReader(new FileReader(fileEditorInput.getFile().getName()));
+			Unmarshaller unmarshaller = new Unmarshaller(TestSuite.class);
+			testSuite = (TestSuite) unmarshaller.unmarshal(br);
+		}catch (Exception e) {	
+			MessageDialog.openError(this.getSite().getShell(), "Error", e.getMessage());
+		}
+	}
+
+	public TestSuite getTestSuite() {
+		return testSuite;
+	}
+
+	public void setTestSuite(TestSuite testSuite) {
+		this.testSuite = testSuite;
+	}
+	
 }

Modified: labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/InputForm.java
===================================================================
--- labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/InputForm.java	2007-02-10 05:45:24 UTC (rev 9421)
+++ labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/InputForm.java	2007-02-10 08:14:26 UTC (rev 9422)
@@ -1,15 +1,16 @@
 package org.drools.testing.plugin.forms;
 
-import java.io.BufferedReader;
-import java.io.FileReader;
-
 import org.drools.testing.core.beans.TestSuite;
+import org.drools.testing.plugin.editors.RtlFormEditor;
 import org.drools.testing.plugin.resources.Messages;
 import org.drools.testing.plugin.resources.TestResourcesPlugin;
-import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.forms.IManagedForm;
@@ -17,18 +18,16 @@
 import org.eclipse.ui.forms.editor.FormPage;
 import org.eclipse.ui.forms.events.ExpansionAdapter;
 import org.eclipse.ui.forms.events.ExpansionEvent;
+import org.eclipse.ui.forms.widgets.ColumnLayout;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.forms.widgets.TableWrapData;
-import org.eclipse.ui.forms.widgets.TableWrapLayout;
-import org.eclipse.ui.part.FileEditorInput;
-import org.exolab.castor.xml.Unmarshaller;
 
 public class InputForm extends FormPage {
 	
 	private FormToolkit toolkit;
 	private ScrolledForm form;
+	private TestSuite testSuite = null;
 
 	public InputForm(FormEditor editor) {
 		super(editor, "Input Capture","Rtl Input Capture"); //$NON-NLS-1$ //$NON-NLS-2$
@@ -36,61 +35,66 @@
 	
 	protected void createFormContent(IManagedForm managedForm) {
 		
-		TestSuite testSuite = null;
-		try {
-			FileEditorInput fileEditorInput = ((FileEditorInput)getEditorInput());
-			BufferedReader br = new BufferedReader(new FileReader(fileEditorInput.getFile().getName()));
-			Unmarshaller unmarshaller = new Unmarshaller(TestSuite.class);
-			testSuite = (TestSuite) unmarshaller.unmarshal(br);
-		}catch (Exception e) {	
-			MessageDialog.openError(this.getSite().getShell(), "Error", e.getMessage());
-		}
+		testSuite = ((RtlFormEditor) getEditor()).getTestSuite();
 	
 		form = managedForm.getForm();
 		toolkit = managedForm.getToolkit();
 		form.setText(Messages.getString("InputForm.title")); //$NON-NLS-1$
 		form.setBackgroundImage(TestResourcesPlugin.getDefault().getImage(TestResourcesPlugin.IMG_FORM_BG));
 		
-		TableWrapLayout layout = new TableWrapLayout();
+		ColumnLayout layout = new ColumnLayout();
+		layout.topMargin = 0;
+		layout.bottomMargin = 5;
+		layout.leftMargin = 10;
+		layout.rightMargin = 10;
+		layout.horizontalSpacing = 10;
+		layout.verticalSpacing = 10;
+		layout.maxNumColumns = 2;
+		layout.minNumColumns = 1;
 		form.getBody().setLayout(layout);
-		layout.numColumns = 2;
 		
-		toolkit.createLabel(form.getBody(), Messages.getString("FormView.testLabel")); //$NON-NLS-1$
-		Text text = toolkit.createText(form.getBody(), "Foo"); //$NON-NLS-1$
-		TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB);
-		text.setLayoutData(td);
+		createTestSuiteSection(managedForm, Messages.getString("InputForm.testSuiteSection"), Messages.getString("InputForm.testSuiteSection.descr"));
 		
-		Section section = toolkit.createSection(form.getBody(), 
-		Section.DESCRIPTION|Section.TITLE_BAR|
-		Section.TWISTIE|Section.EXPANDED);
-		td = new TableWrapData(TableWrapData.FILL_GRAB);
-		td.colspan = 2;
-
-		section.setLayoutData(td);
+	}
+	
+	private void createTestSuiteSection (IManagedForm mform, String title, String desc) {
+		
+		Composite client = createSection(mform, title, desc, 2);
+		FormToolkit toolkit = mform.getToolkit();
+		toolkit.createLabel(client, Messages.getString("InputForm.testSuiteSection.nameLabel"));
+		toolkit.createText(client, testSuite.getName());
+		/*Button apply = toolkit.createButton(client, Messages.getString("InputForm.apply"), SWT.PUSH); //$NON-NLS-1$
+		apply.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL|GridData.VERTICAL_ALIGN_BEGINNING));*/
+	}
+	
+	private Composite createSection(IManagedForm mform, String title,
+			String desc, int numColumns) {
+		final ScrolledForm form = mform.getForm();
+		FormToolkit toolkit = mform.getToolkit();
+		Section section = toolkit.createSection(form.getBody(), Section.TWISTIE
+				| Section.TITLE_BAR | Section.DESCRIPTION | Section.EXPANDED);
+		section.setText(title);
+		section.setDescription(desc);
+		//toolkit.createCompositeSeparator(section);
+		Composite client = toolkit.createComposite(section);
+		GridLayout layout = new GridLayout();
+		layout.marginWidth = layout.marginHeight = 0;
+		layout.numColumns = numColumns;
+		client.setLayout(layout);
+		section.setClient(client);
 		section.addExpansionListener(new ExpansionAdapter() {
-		public void expansionStateChanged(ExpansionEvent e) {
-			form.reflow(true);
-		  	}
+			public void expansionStateChanged(ExpansionEvent e) {
+				form.reflow(false);
+			}
 		});
-		section.setText(Messages.getString("InputForm.testSuiteSection"));
-		section.setDescription(Messages.getString("InputForm.testSuiteSection.descr"));
-
-		Composite sectionClient = toolkit.createComposite(section);
-		GridLayout gd = new GridLayout();
-		gd.numColumns = 2;
-		sectionClient.setLayout(gd);
-		toolkit.createLabel(sectionClient, Messages.getString("InputForm.testSuiteSection.nameLabel"));
-		toolkit.createText(sectionClient, testSuite.getName());
-		section.setClient(sectionClient);
-		
-
-		 toolkit.paintBordersFor(form.getBody());
-		
+		return client;
 	}
 	
 	public void init(IEditorSite site, IEditorInput input) {
 		setSite(site);
 		setInput(input);
 	}
+	
+	
 
 }

Added: labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/MasterDetailsPage.java
===================================================================
--- labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/MasterDetailsPage.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/MasterDetailsPage.java	2007-02-10 08:14:26 UTC (rev 9422)
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.drools.testing.plugin.forms;
+import org.drools.testing.plugin.resources.Messages;
+import org.drools.testing.plugin.resources.TestResourcesPlugin;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+/**
+ * @author dejan
+ * 
+ * To change the template for this generated type comment go to Window -
+ * Preferences - Java - Code Generation - Code and Comments
+ */
+public class MasterDetailsPage extends FormPage {
+	private TestSuitePropertiesBlock block;
+	public MasterDetailsPage(FormEditor editor) {
+		super(editor, "fourth", Messages.getString("MasterDetailsPage.label")); //$NON-NLS-1$ //$NON-NLS-2$
+		block = new TestSuitePropertiesBlock(this);
+	}
+	protected void createFormContent(final IManagedForm managedForm) {
+		final ScrolledForm form = managedForm.getForm();
+		//FormToolkit toolkit = managedForm.getToolkit();
+		form.setText(Messages.getString("MasterDetailsPage.title")); //$NON-NLS-1$
+		form.setBackgroundImage(TestResourcesPlugin.getDefault().getImage(
+				TestResourcesPlugin.IMG_FORM_BG));
+		block.createContent(managedForm);
+	}
+}
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuiteDetailsPage.java
===================================================================
--- labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuiteDetailsPage.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuiteDetailsPage.java	2007-02-10 08:14:26 UTC (rev 9422)
@@ -0,0 +1,175 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.drools.testing.plugin.forms;
+
+import org.drools.testing.core.beans.TestSuite;
+import org.drools.testing.plugin.resources.Messages;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.forms.IDetailsPage;
+import org.eclipse.ui.forms.IFormPart;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.widgets.FormText;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
+
+/**
+ * @author dejan
+ *
+ * To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class TestSuiteDetailsPage implements IDetailsPage {
+	private IManagedForm mform;
+	private TestSuite input;
+	private Text text;
+	private static final String RTEXT_DATA =
+			"<form><p>An example of a free-form text that should be "+ //$NON-NLS-1$
+			"wrapped below the section with widgets.</p>"+ //$NON-NLS-1$
+			"<p>It can contain simple tags like <a>links</a> and <b>bold text</b>.</p></form>"; //$NON-NLS-1$
+	
+	public TestSuiteDetailsPage() {
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#initialize(org.eclipse.ui.forms.IManagedForm)
+	 */
+	public void initialize(IManagedForm mform) {
+		this.mform = mform;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#createContents(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createContents(Composite parent) {
+		TableWrapLayout layout = new TableWrapLayout();
+		layout.topMargin = 5;
+		layout.leftMargin = 5;
+		layout.rightMargin = 2;
+		layout.bottomMargin = 2;
+		parent.setLayout(layout);
+
+		FormToolkit toolkit = mform.getToolkit();
+		Section s1 = toolkit.createSection(parent, Section.DESCRIPTION|Section.TITLE_BAR);
+		s1.marginWidth = 10;
+		s1.setText("Test Suite Details"); //$NON-NLS-1$
+		s1.setDescription(Messages.getString("TestSuiteDetailsPage.name")); //$NON-NLS-1$
+		TableWrapData td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
+		td.grabHorizontal = true;
+		s1.setLayoutData(td);
+		Composite client = toolkit.createComposite(s1);
+		GridLayout glayout = new GridLayout();
+		glayout.marginWidth = glayout.marginHeight = 0;
+		glayout.numColumns = 2;
+		client.setLayout(glayout);
+		
+		SelectionListener choiceListener = new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				Integer value = (Integer)e.widget.getData();
+				if (input!=null) {
+					//input.setChoice(value.intValue());
+				}
+			}
+		};
+		GridData gd;
+		gd = new GridData();
+		gd.horizontalSpan = 2;
+		
+		toolkit.createLabel(client, Messages.getString("TestSuiteDetailsPage.label")); //$NON-NLS-1$
+		text = toolkit.createText(client, "", SWT.SINGLE); //$NON-NLS-1$
+		text.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				if (input!=null)
+					input.setName(text.getText());
+			}
+		});
+		gd = new GridData(GridData.FILL_HORIZONTAL|GridData.VERTICAL_ALIGN_BEGINNING);
+		gd.widthHint = 10;
+		text.setLayoutData(gd);
+		
+		createSpacer(toolkit, client, 2);
+		
+		FormText rtext = toolkit.createFormText(parent, true);
+		rtext.setText(RTEXT_DATA, true, false);
+		td = new TableWrapData(TableWrapData.FILL, TableWrapData.TOP);
+		td.grabHorizontal = true;
+		rtext.setLayoutData(td);
+		
+		toolkit.paintBordersFor(s1);
+		s1.setClient(client);
+	}
+	private void createSpacer(FormToolkit toolkit, Composite parent, int span) {
+		Label spacer = toolkit.createLabel(parent, ""); //$NON-NLS-1$
+		GridData gd = new GridData();
+		gd.horizontalSpan = span;
+		spacer.setLayoutData(gd);
+	}
+	private void update() {
+		text.setText(input!=null && input.getName()!=null?input.getName():""); //$NON-NLS-1$
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#inputChanged(org.eclipse.jface.viewers.IStructuredSelection)
+	 */
+	public void selectionChanged(IFormPart part, ISelection selection) {
+		IStructuredSelection ssel = (IStructuredSelection)selection;
+		if (ssel.size()==1) {
+			input = (TestSuite)ssel.getFirstElement();
+		}
+		else
+			input = null;
+		update();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#commit()
+	 */
+	public void commit(boolean onSave) {
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#setFocus()
+	 */
+	public void setFocus() {
+		text.setFocus();
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#dispose()
+	 */
+	public void dispose() {
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#isDirty()
+	 */
+	public boolean isDirty() {
+		return false;
+	}
+	public boolean isStale() {
+		return false;
+	}
+	/* (non-Javadoc)
+	 * @see org.eclipse.ui.forms.IDetailsPage#refresh()
+	 */
+	public void refresh() {
+		update();
+	}
+	public boolean setFormInput(Object input) {
+		return false;
+	}
+}

Added: labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuitePropertiesBlock.java
===================================================================
--- labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuitePropertiesBlock.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/forms/TestSuitePropertiesBlock.java	2007-02-10 08:14:26 UTC (rev 9422)
@@ -0,0 +1,155 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.drools.testing.plugin.forms;
+import java.util.ArrayList;
+
+import org.drools.testing.core.beans.TestSuite;
+import org.drools.testing.plugin.editors.RtlFormEditor;
+import org.drools.testing.plugin.resources.Messages;
+import org.drools.testing.plugin.resources.TestResourcesPlugin;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.ui.ISharedImages;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.forms.DetailsPart;
+import org.eclipse.ui.forms.IManagedForm;
+import org.eclipse.ui.forms.MasterDetailsBlock;
+import org.eclipse.ui.forms.SectionPart;
+import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.ui.forms.widgets.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+/**
+ *
+ */
+public class TestSuitePropertiesBlock extends MasterDetailsBlock {
+	private FormPage page;
+	public TestSuitePropertiesBlock(FormPage page) {
+		this.page = page;
+	}
+	/**
+	 * @param id
+	 * @param title
+	 */
+	class MasterContentProvider implements IStructuredContentProvider {
+		public Object[] getElements(Object inputElement) {
+			ArrayList ch = new ArrayList();
+			if (inputElement instanceof TestSuite) {
+				TestSuite testSuite = (TestSuite) inputElement;
+				ch.add(testSuite);
+				/*Scenario[] scenarios = testSuite.getScenario();
+				Rule[] rules = testSuite.getRules();
+				for (int i=0; i<scenarios.length; i++)
+					ch.add((Scenario) scenarios[i]);
+				for (int i=0; i<rules.length; i++)
+					ch.add((Rule) rules[i]);*/
+				return ch.toArray();
+			}
+			return new Object[0];
+		}
+		public void dispose() {
+		}
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+	}
+	class MasterLabelProvider extends LabelProvider
+			implements
+				ITableLabelProvider {
+		public String getColumnText(Object obj, int index) {
+			return obj.toString();
+		}
+		public Image getColumnImage(Object obj, int index) {
+			return PlatformUI.getWorkbench().getSharedImages().getImage(
+					ISharedImages.IMG_OBJ_ELEMENT);
+		}
+	}
+	protected void createMasterPart(final IManagedForm managedForm,
+			Composite parent) {
+		//final ScrolledForm form = managedForm.getForm();
+		FormToolkit toolkit = managedForm.getToolkit();
+		Section section = toolkit.createSection(parent, Section.DESCRIPTION|Section.TITLE_BAR);
+		section.setText(Messages.getString("TestSuitePropertiesBlock.sname")); //$NON-NLS-1$
+		section
+				.setDescription(Messages.getString("TestSuitePropertiesBlock.sdesc")); //$NON-NLS-1$
+		section.marginWidth = 10;
+		section.marginHeight = 5;
+		Composite client = toolkit.createComposite(section, SWT.WRAP);
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 2;
+		layout.marginWidth = 2;
+		layout.marginHeight = 2;
+		client.setLayout(layout);
+		Table t = toolkit.createTable(client, SWT.NULL);
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		gd.heightHint = 20;
+		gd.widthHint = 100;
+		t.setLayoutData(gd);
+		toolkit.paintBordersFor(client);
+		Button b = toolkit.createButton(client, Messages.getString("TestSuitePropertiesBlock.add"), SWT.PUSH); //$NON-NLS-1$
+		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
+		b.setLayoutData(gd);
+		section.setClient(client);
+		final SectionPart spart = new SectionPart(section);
+		managedForm.addPart(spart);
+		TableViewer viewer = new TableViewer(t);
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				managedForm.fireSelectionChanged(spart, event.getSelection());
+			}
+		});
+		viewer.setContentProvider(new MasterContentProvider());
+		viewer.setLabelProvider(new MasterLabelProvider());
+		viewer.setInput(((RtlFormEditor)page.getEditor()).getTestSuite());
+	}
+	protected void createToolBarActions(IManagedForm managedForm) {
+		final ScrolledForm form = managedForm.getForm();
+		Action haction = new Action("hor", Action.AS_RADIO_BUTTON) { //$NON-NLS-1$
+			public void run() {
+				sashForm.setOrientation(SWT.HORIZONTAL);
+				form.reflow(true);
+			}
+		};
+		haction.setChecked(true);
+		haction.setToolTipText(Messages.getString("TestSuitePropertiesBlock.horizontal")); //$NON-NLS-1$
+		haction.setImageDescriptor(TestResourcesPlugin.getDefault()
+				.getImageRegistry()
+				.getDescriptor(TestResourcesPlugin.IMG_HORIZONTAL));
+		Action vaction = new Action("ver", Action.AS_RADIO_BUTTON) { //$NON-NLS-1$
+			public void run() {
+				sashForm.setOrientation(SWT.VERTICAL);
+				form.reflow(true);
+			}
+		};
+		vaction.setChecked(false);
+		vaction.setToolTipText(Messages.getString("TestSuitePropertiesBlock.vertical")); //$NON-NLS-1$
+		vaction.setImageDescriptor(TestResourcesPlugin.getDefault()
+				.getImageRegistry().getDescriptor(TestResourcesPlugin.IMG_VERTICAL));
+		form.getToolBarManager().add(haction);
+		form.getToolBarManager().add(vaction);
+	}
+	protected void registerPages(DetailsPart detailsPart) {
+		detailsPart.registerPage(TestSuite.class, new TestSuiteDetailsPage());
+		//detailsPart.registerPage(TypeTwo.class, new TypeTwoDetailsPage());
+	}
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/resources/messages.properties
===================================================================
--- labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/resources/messages.properties	2007-02-10 05:45:24 UTC (rev 9421)
+++ labs/jbossrules/trunk/drools-testing-plugin/src/org/drools/testing/plugin/resources/messages.properties	2007-02-10 08:14:26 UTC (rev 9422)
@@ -2,4 +2,17 @@
 InputForm.testSuiteSection=Test Suite
 InputForm.testSuiteSection.descr=This is the test suite information generated from the supplied rtl file.
 InputForm.testSuiteSection.nameLabel=Suite Name
-InputForm.testLabel=Test Label 
+InputForm.testLabel=Test Label
+InputForm.apply=Apply
+
+TestSuitePropertiesBlock.sname=Model Objects
+TestSuitePropertiesBlock.sdesc=The list contains objects from the model whose details are editable on the right
+TestSuitePropertiesBlock.add=Add...
+TestSuitePropertiesBlock.horizontal=Horizontal orientation
+TestSuitePropertiesBlock.vertical=Vertical orientation 
+
+TestSuiteDetailsPage.name=Set the properties of the selected TestSuite object.
+TestSuiteDetailsPage.label=Name
+
+MasterDetailsPage.label=Master Details
+MasterDetailsPage.title=Form with scrolled sections
\ No newline at end of file




More information about the jboss-svn-commits mailing list