[jbosstools-commits] JBoss Tools SVN: r9463 - in workspace/Denny/org.jboss.tools.esb.editor: .settings and 11 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Jul 31 23:09:11 EDT 2008


Author: dennyxu
Date: 2008-07-31 23:09:10 -0400 (Thu, 31 Jul 2008)
New Revision: 9463

Added:
   workspace/Denny/org.jboss.tools.esb.editor/.classpath
   workspace/Denny/org.jboss.tools.esb.editor/.project
   workspace/Denny/org.jboss.tools.esb.editor/.settings/
   workspace/Denny/org.jboss.tools.esb.editor/.settings/org.eclipse.jdt.core.prefs
   workspace/Denny/org.jboss.tools.esb.editor/META-INF/
   workspace/Denny/org.jboss.tools.esb.editor/META-INF/MANIFEST.MF
   workspace/Denny/org.jboss.tools.esb.editor/build.properties
   workspace/Denny/org.jboss.tools.esb.editor/icons/
   workspace/Denny/org.jboss.tools.esb.editor/icons/sample.gif
   workspace/Denny/org.jboss.tools.esb.editor/plugin.xml
   workspace/Denny/org.jboss.tools.esb.editor/src/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/Activator.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/DeploymentFormPage.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedEditor.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedPageEditorContributor.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueueDetailsPage.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueuePage.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/QueueServiceBlock.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/models/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/models/QueueService.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizard.java
   workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizardPage.java
Log:
prototype of esb project wizard and editor(GUI)

Added: workspace/Denny/org.jboss.tools.esb.editor/.classpath
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/.classpath	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/.classpath	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

Added: workspace/Denny/org.jboss.tools.esb.editor/.project
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/.project	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/.project	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.jboss.tools.esb.editor</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: workspace/Denny/org.jboss.tools.esb.editor/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/.settings/org.eclipse.jdt.core.prefs	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/.settings/org.eclipse.jdt.core.prefs	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,7 @@
+#Fri Jul 25 11:13:35 CST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Added: workspace/Denny/org.jboss.tools.esb.editor/META-INF/MANIFEST.MF
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/META-INF/MANIFEST.MF	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/META-INF/MANIFEST.MF	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Editor Plug-in
+Bundle-SymbolicName: org.jboss.tools.esb.editor; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.jboss.tools.esb.editor.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.jface.text,
+ org.eclipse.core.resources,
+ org.eclipse.ui.editors,
+ org.eclipse.ui.ide,
+ org.jboss.tools.esb.ui;bundle-version="2.0.0",
+ org.jboss.tools.jst.web.ui;bundle-version="2.0.0",
+ org.jboss.tools.common.text.ext;bundle-version="2.0.0",
+ org.jboss.tools.common.model;bundle-version="2.0.0",
+ org.eclipse.ui.forms;bundle-version="3.3.100"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Import-Package: org.jboss.tools.common.model.ui.forms

Added: workspace/Denny/org.jboss.tools.esb.editor/build.properties
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/build.properties	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/build.properties	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+               META-INF/,\
+               .,\
+               icons/

Added: workspace/Denny/org.jboss.tools.esb.editor/icons/sample.gif
===================================================================
(Binary files differ)


Property changes on: workspace/Denny/org.jboss.tools.esb.editor/icons/sample.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: workspace/Denny/org.jboss.tools.esb.editor/plugin.xml
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/plugin.xml	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/plugin.xml	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+
+   <extension
+         point="org.eclipse.ui.editors">
+      <editor
+            name="ESB Compound Editor"
+            extensions="xml"
+            icon="icons/sample.gif "
+            contributorClass="org.jboss.tools.esb.editor.editors.ESBComposedPageEditorContributor"
+            class="org.jboss.tools.esb.editor.editors.ESBComposedEditor"
+            id="org.jboss.tools.esb.editor.editors.ESBComposedEditor">
+      </editor>
+   </extension>
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <category
+            name="Sample Wizards"
+            id="org.jboss.tools.esb.editor">
+      </category>
+      <wizard
+            name="Multi-page Editor file"
+            icon="icons/sample.gif"
+            category="org.jboss.tools.esb.editor"
+            class="org.jboss.tools.esb.editor.wizards.SampleNewWizard"
+            id="org.jboss.tools.esb.editor.wizards.SampleNewWizard">
+      </wizard>
+   </extension>
+
+</plugin>

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/Activator.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/Activator.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/Activator.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,61 @@
+package org.jboss.tools.esb.editor;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.jboss.tools.esb.editor";
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns an image descriptor for the image file at the given
+	 * plug-in relative path
+	 *
+	 * @param path the path
+	 * @return the image descriptor
+	 */
+	public static ImageDescriptor getImageDescriptor(String path) {
+		return imageDescriptorFromPlugin(PLUGIN_ID, path);
+	}
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/DeploymentFormPage.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/DeploymentFormPage.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/DeploymentFormPage.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,94 @@
+package org.jboss.tools.esb.editor.editors;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.swt.SWT;
+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.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+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.FormToolkit;
+import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+
+
+public class DeploymentFormPage extends FormPage {
+
+	public DeploymentFormPage(FormEditor editor, String id, String title, IFile deployment) {
+		super(editor, id, title);
+	}
+	
+ 
+	protected void createFormContent(IManagedForm managedForm) {
+		ScrolledForm form = managedForm.getForm();
+		FormToolkit toolkit = managedForm.getToolkit();
+		form.setText("Deployment"); //$NON-NLS-1$
+		//form.setBackgroundImage(FormArticlePlugin.getDefault().getImage(FormArticlePlugin.IMG_FORM_BG));
+		GridLayout layout = new GridLayout();
+		layout.numColumns = 1;
+		form.getBody().setLayout(layout);
+
+		Section section = toolkit.createSection(form.getBody(), Section.DESCRIPTION | Section.TITLE_BAR );
+		section.setText("JBOSS ESB Deployment");
+		Composite details = toolkit.createComposite(section);
+		details.setLayout(new GridLayout(2, false));
+		createDepends(toolkit,details);
+		
+		section.setClient(details);
+		
+	}
+	
+	private void createDepends(FormToolkit toolkit, Composite details){
+		 
+
+		
+		Table dependsTable = new Table(details, SWT.MULTI | SWT.BORDER
+		        | SWT.FULL_SELECTION);
+		dependsTable.setLinesVisible(true);
+		dependsTable.setHeaderVisible(true);
+		    String[] titles = { "ID", "Message Type", "Name"};
+		    for (int i = 0; i < titles.length; i++) {
+		      TableColumn column = new TableColumn(dependsTable, SWT.NONE);
+		      column.setText(titles[i]);
+		    }
+		    
+		    
+		      TableItem item = new TableItem(dependsTable, SWT.NONE);
+		      item.setText(0, "jboss.esb.quickstart.destination");
+		      item.setText(1, "Queue");
+		      item.setText(2, "quickstart_helloworld_Request_esb");
+		       
+		       
+		      item = new TableItem(dependsTable, SWT.NONE);
+		      item.setText(0, "jboss.esb.quickstart.destination");
+		      item.setText(1, "Queue");
+		      item.setText(2, "quickstart_helloworld_Request_gw");
+		      
+		      
+		      
+		    for (int i = 0; i < titles.length; i++) {
+		    	dependsTable.getColumn(i).pack();
+		    }
+		    dependsTable.setSize(dependsTable.computeSize(SWT.DEFAULT, 100));
+		    details.pack();
+		
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		gd.verticalSpan = 2;
+		dependsTable.setLayoutData(gd);
+		Button btnNew = toolkit.createButton(details, "New", SWT.NONE);
+		btnNew.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_END));
+		Button btnRemove = toolkit.createButton(details, "Remove", SWT.NONE);
+		gd = new GridData();
+		gd.verticalAlignment = GridData.VERTICAL_ALIGN_BEGINNING;
+		btnRemove.setLayoutData(gd);
+
+		
+	}
+	 
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedEditor.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedEditor.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedEditor.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,170 @@
+package org.jboss.tools.esb.editor.editors;
+
+
+import java.io.ByteArrayInputStream;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IPersistableElement;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.editors.text.TextEditor;
+import org.eclipse.ui.forms.editor.FormEditor;
+import org.eclipse.ui.internal.part.NullEditorInput;
+import org.eclipse.ui.part.FileEditorInput;
+import org.jboss.tools.jst.web.ui.editors.WebCompoundEditor;
+
+/**
+ * An example showing how to create a multi-page editor.
+ * This example has 3 pages:
+ * <ul>
+ * <li>page 0 contains a nested text editor.
+ * <li>page 1 allows you to change the font used in page 2
+ * <li>page 2 shows the words in page 0 in sorted order
+ * </ul>
+ */
+public class ESBComposedEditor extends FormEditor {
+
+	@Override
+	protected void addPages() {
+		createDeploymentPage();
+		//createPage0();
+		createESBPage();
+		
+		createMessagePage();
+		createTextPages();
+	}
+	
+	private void createESBPage(){
+		WebCompoundEditor esbEditor = new WebCompoundEditor();
+		try {
+			int esbIndex = addPage(esbEditor, getEditorInput());
+			setPageText(esbIndex, "JBoss ESB");
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	private void createDeploymentPage() {
+		DeploymentFormPage page = new DeploymentFormPage(this, "deploy", "Deployment", null);
+		int dindex;
+		try {
+			dindex = this.addPage(page);
+			setPageText(dindex, "Deployment");
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+	}
+	
+	private void createMessagePage(){
+		try {
+			int index = addPage(new MessageQueuePage(this));
+			setPageText(index, "Message");
+			
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	private void createTextPages(){
+		try {
+			int index = addPage(new TextEditor(), getDeploymentInput());
+			setPageText(index, "deployment.xml");
+			
+			index = addPage(new TextEditor(), getMessageInput());
+			setPageText(index, "queue-service.xml");
+		} catch (PartInitException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	private IEditorInput getMessageInput(){
+		FileEditorInput fileInput = (FileEditorInput)getEditorInput();
+		IProject project = fileInput.getFile().getProject();
+		IFile messageFile = project.getFolder("ESBContent").getFile("queue-service.xml");	
+		if(!messageFile.exists()){
+			createMessageQueueFile(messageFile);
+		}
+		
+		return new FileEditorInput(messageFile);
+	}
+	
+	private IEditorInput getDeploymentInput(){
+		FileEditorInput fileInput = (FileEditorInput)getEditorInput();
+		IProject project = fileInput.getFile().getProject();
+		IFile deployment = project.getFolder("ESBContent").getFolder("META-INF").getFile("deployment.xml");
+		if(!deployment.exists()){
+			createDeploymentFile(deployment);
+		}
+		return new FileEditorInput(deployment);
+	}
+	
+	void createPage0() {
+		try {
+			TextEditor editor = new TextEditor();
+			int index = addPage(editor, getEditorInput());
+			setPageText(index, editor.getTitle());
+		} catch (PartInitException e) {
+			ErrorDialog.openError(
+				getSite().getShell(),
+				"Error creating nested text editor",
+				null,
+				e.getStatus());
+		}
+	}
+	
+	private void createDeploymentFile(IFile file){
+		StringBuffer sb = new StringBuffer("<jbossesb-deployment>");
+		sb.append("\n");
+		sb.append("</jbossesb-deployment>");
+		try {
+			file.create(new ByteArrayInputStream(sb.toString().getBytes()) , true, null);
+		} catch (CoreException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	private void createMessageQueueFile(IFile file){
+		StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+		try {
+			file.create(new ByteArrayInputStream(sb.toString().getBytes()) , true, null);
+		} catch (CoreException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	
+
+	@Override
+	public void doSave(IProgressMonitor monitor) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public void doSaveAs() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	@Override
+	public boolean isSaveAsAllowed() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	
+
+	 
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedPageEditorContributor.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedPageEditorContributor.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/ESBComposedPageEditorContributor.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,108 @@
+package org.jboss.tools.esb.editor.editors;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.ide.IDEActionFactory;
+import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
+import org.eclipse.ui.texteditor.ITextEditor;
+import org.eclipse.ui.texteditor.ITextEditorActionConstants;
+
+/**
+ * Manages the installation/deinstallation of global actions for multi-page editors.
+ * Responsible for the redirection of global actions to the active editor.
+ * Multi-page contributor replaces the contributors for the individual editors in the multi-page editor.
+ */
+public class ESBComposedPageEditorContributor extends MultiPageEditorActionBarContributor {
+	private IEditorPart activeEditorPart;
+	private Action sampleAction;
+	/**
+	 * Creates a multi-page contributor.
+	 */
+	public ESBComposedPageEditorContributor() {
+		super();
+		createActions();
+	}
+	/**
+	 * Returns the action registed with the given text editor.
+	 * @return IAction or null if editor is null.
+	 */
+	protected IAction getAction(ITextEditor editor, String actionID) {
+		return (editor == null ? null : editor.getAction(actionID));
+	}
+	/* (non-JavaDoc)
+	 * Method declared in AbstractMultiPageEditorActionBarContributor.
+	 */
+
+	public void setActivePage(IEditorPart part) {
+		if (activeEditorPart == part)
+			return;
+
+		activeEditorPart = part;
+
+		IActionBars actionBars = getActionBars();
+		if (actionBars != null) {
+
+			ITextEditor editor = (part instanceof ITextEditor) ? (ITextEditor) part : null;
+
+			actionBars.setGlobalActionHandler(
+				ActionFactory.DELETE.getId(),
+				getAction(editor, ITextEditorActionConstants.DELETE));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.UNDO.getId(),
+				getAction(editor, ITextEditorActionConstants.UNDO));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.REDO.getId(),
+				getAction(editor, ITextEditorActionConstants.REDO));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.CUT.getId(),
+				getAction(editor, ITextEditorActionConstants.CUT));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.COPY.getId(),
+				getAction(editor, ITextEditorActionConstants.COPY));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.PASTE.getId(),
+				getAction(editor, ITextEditorActionConstants.PASTE));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.SELECT_ALL.getId(),
+				getAction(editor, ITextEditorActionConstants.SELECT_ALL));
+			actionBars.setGlobalActionHandler(
+				ActionFactory.FIND.getId(),
+				getAction(editor, ITextEditorActionConstants.FIND));
+			actionBars.setGlobalActionHandler(
+				IDEActionFactory.BOOKMARK.getId(),
+				getAction(editor, IDEActionFactory.BOOKMARK.getId()));
+			actionBars.updateActionBars();
+		}
+	}
+	private void createActions() {
+		sampleAction = new Action() {
+			public void run() {
+				MessageDialog.openInformation(null, "Editor Plug-in", "Sample Action Executed");
+			}
+		};
+		sampleAction.setText("Sample Action");
+		sampleAction.setToolTipText("Sample Action tool tip");
+		sampleAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
+				getImageDescriptor(IDE.SharedImages.IMG_OBJS_TASK_TSK));
+	}
+	public void contributeToMenu(IMenuManager manager) {
+		IMenuManager menu = new MenuManager("Editor &Menu");
+		manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
+		menu.add(sampleAction);
+	}
+	public void contributeToToolBar(IToolBarManager manager) {
+		manager.add(new Separator());
+		manager.add(sampleAction);
+	}
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueueDetailsPage.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueueDetailsPage.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueueDetailsPage.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,210 @@
+package org.jboss.tools.esb.editor.editors;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.SWT;
+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.Label;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.TableItem;
+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.editor.FormEditor;
+import org.eclipse.ui.forms.editor.FormPage;
+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;
+
+
+public class MessageQueueDetailsPage extends FormPage implements IDetailsPage {
+
+	private IManagedForm mform;
+
+	public MessageQueueDetailsPage(FormEditor editor, String id, String title, IFile deployment) {
+		super(editor, id, title);
+	}
+	
+	public MessageQueueDetailsPage(){
+		super("test", "Message");
+	}
+	
+ 
+	
+
+	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("Message Queue Details"); //$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;
+		client.setLayout(glayout);
+		
+		Composite details = toolkit.createComposite(client);
+		details.setLayout(new GridLayout(2, false));
+		details.setLayoutData(new GridData(GridData.FILL_BOTH));
+		
+		Label lblName = toolkit.createLabel(details, "Name");
+		Text txtName = toolkit.createText(details, "quickstart_hibernate_action_Request_esb-0", SWT.BORDER);
+		txtName.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		toolkit.createLabel(details, "Code");
+		Text txtcode = toolkit.createText(details, "org.jboss.mq.server.jmx.Queue", SWT.BORDER);
+		txtcode.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		
+		Label lblattr = toolkit.createLabel(details, "Attributes:");
+		GridData gd = new GridData();
+		gd.horizontalSpan = 2;
+		lblattr.setLayoutData(gd);
+		
+		Composite tablecom = toolkit.createComposite(details);
+		tablecom.setLayout(new GridLayout(2, false));
+		gd = new GridData(GridData.FILL_BOTH);
+		gd.horizontalSpan = 2;
+		tablecom.setLayoutData(gd);
+		
+
+		
+		Table dependsTable = new Table(tablecom, SWT.MULTI | SWT.BORDER
+		        | SWT.FULL_SELECTION);
+		dependsTable.setLinesVisible(true);
+		dependsTable.setHeaderVisible(true);
+		    String[] titles = { "Attribute", "Value"};
+		    for (int i = 0; i < titles.length; i++) {
+		      TableColumn column = new TableColumn(dependsTable, SWT.NONE);
+		      column.setText(titles[i]);
+		    }
+		    
+		    
+		      TableItem item = new TableItem(dependsTable, SWT.NONE);
+		      item.setText(0, "RedeliveryDelay");
+		      item.setText(1, "1000");
+		       
+		      item = new TableItem(dependsTable, SWT.NONE);
+		      item.setText(0, "MaxDeliveryAttempts");
+		      item.setText(1, "15");
+		      
+		      
+		      
+		    for (int i = 0; i < titles.length; i++) {
+		    	dependsTable.getColumn(i).pack();
+		    }
+		    dependsTable.setSize(dependsTable.computeSize(SWT.DEFAULT, 100));
+		    tablecom.pack();
+		
+		gd = new GridData(GridData.FILL_BOTH);
+		gd.verticalSpan = 2;
+		dependsTable.setLayoutData(gd);
+		Button btnNew = toolkit.createButton(tablecom, "New", SWT.NONE);
+		Button btnRemove = toolkit.createButton(tablecom, "Remove", SWT.NONE);
+
+		Label lblDepends = toolkit.createLabel(details, "Depends:");
+		gd = new GridData();
+		gd.horizontalSpan = 2;
+		lblDepends.setLayoutData(gd);
+		createDepends(toolkit, details);
+		
+		
+		s1.setClient(client);
+		
+	}
+
+	
+	private void createDepends(FormToolkit toolkit, Composite details){
+		Composite tablecom = toolkit.createComposite(details);
+		tablecom.setLayout(new GridLayout(2, false));
+		GridData gd = new GridData(GridData.FILL_BOTH);
+		gd.horizontalSpan = 2;
+		tablecom.setLayoutData(gd);
+		
+
+		
+		Table dependsTable = new Table(tablecom, SWT.MULTI | SWT.BORDER
+		        | SWT.FULL_SELECTION);
+		dependsTable.setLinesVisible(true);
+		dependsTable.setHeaderVisible(true);
+		    String[] titles = { "name", "Attribute", "Value"};
+		    for (int i = 0; i < titles.length; i++) {
+		      TableColumn column = new TableColumn(dependsTable, SWT.NONE);
+		      column.setText(titles[i]);
+		    }
+		    
+		    
+		      TableItem item = new TableItem(dependsTable, SWT.NONE);
+		      item.setText(0, "jboss.messaging:service=ServerPeer");
+		      item = new TableItem(dependsTable, SWT.NONE);
+		      item.setText(1, "optional-attribute-name");
+		      item.setText(2, "ServerPeer");
+		       
+		       
+		      
+		      
+		      
+		    for (int i = 0; i < titles.length; i++) {
+		    	dependsTable.getColumn(i).pack();
+		    }
+		    dependsTable.setSize(dependsTable.computeSize(SWT.DEFAULT, 100));
+		    tablecom.pack();
+		
+		gd = new GridData(GridData.FILL_BOTH);
+		gd.verticalSpan = 2;
+		dependsTable.setLayoutData(gd);
+		Button btnNew = toolkit.createButton(tablecom, "New", SWT.NONE);
+		Button btnRemove = toolkit.createButton(tablecom, "Remove", SWT.NONE);
+
+		
+	}
+	public void commit(boolean onSave) {
+		
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void initialize(IManagedForm form) {
+		this.mform = form;
+		
+	}
+
+	public boolean isStale() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	public void refresh() {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public boolean setFormInput(Object input) {
+		// TODO Auto-generated method stub
+		return true;
+	}
+
+	public void selectionChanged(IFormPart part, ISelection selection) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	
+	
+	
+	 
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueuePage.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueuePage.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/MessageQueuePage.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,28 @@
+package org.jboss.tools.esb.editor.editors;
+
+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;
+
+public class MessageQueuePage extends FormPage {
+
+	public MessageQueuePage(FormEditor editor, String id, String title) {
+		super(editor, id, title);
+		// TODO Auto-generated constructor stub
+	}
+
+	
+	private QueueServiceBlock block;
+	public MessageQueuePage(FormEditor editor) {
+		super(editor, "Queue Service", "Queue Service Details"); //$NON-NLS-1$ //$NON-NLS-2$
+		block = new QueueServiceBlock(this);
+	}
+	protected void createFormContent(final IManagedForm managedForm) {
+		final ScrolledForm form = managedForm.getForm();
+		//FormToolkit toolkit = managedForm.getToolkit();
+		form.setText("Message Queue Configuration"); //$NON-NLS-1$
+		 
+		block.createContent(managedForm);
+	}
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/QueueServiceBlock.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/QueueServiceBlock.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/editors/QueueServiceBlock.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,171 @@
+package org.jboss.tools.esb.editor.editors;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+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.Item;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+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;
+import org.jboss.tools.esb.editor.models.QueueService;
+
+public class QueueServiceBlock extends MasterDetailsBlock {
+
+	private FormPage page;
+	public QueueServiceBlock(FormPage page) {
+		this.page = page;
+	}
+	 
+	class MasterContentProvider implements ITreeContentProvider {
+		public Object[] getElements(Object inputElement) {
+			if(inputElement instanceof List){
+				return ((List)inputElement).toArray();
+			}
+			return new Object[]{inputElement};
+		}
+		public void dispose() {
+		}
+		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		}
+		public Object[] getChildren(Object parentElement) {
+			if(parentElement instanceof List){
+				return ((List)parentElement).toArray();
+			}
+			return new Object[0];
+			
+		}
+		public Object getParent(Object element) {
+			return null;
+		}
+		public boolean hasChildren(Object element) {
+			return getChildren(element).length > 0;
+		}
+	}
+	class MasterLabelProvider implements
+			ILabelProvider {
+		 
+		public Image getImage(Object element) {
+			if (element instanceof List) {
+				return PlatformUI.getWorkbench().getSharedImages().getImage(
+						ISharedImages.IMG_OBJ_ELEMENT);
+			}
+			if (element instanceof QueueService) {
+				return PlatformUI.getWorkbench().getSharedImages().getImage(
+						ISharedImages.IMG_OBJ_FILE);
+			}
+			return null;
+		}
+		public String getText(Object element) {
+			if(element instanceof List){
+				return "Queue Services";
+			}else if(element instanceof QueueService){
+				return ((QueueService)element).getQueueServiceName();
+			}
+			return "";
+		}
+		public void addListener(ILabelProviderListener listener) {
+			// TODO Auto-generated method stub
+			
+		}
+		public void dispose() {
+			// TODO Auto-generated method stub
+			
+		}
+		public boolean isLabelProperty(Object element, String property) {
+			// TODO Auto-generated method stub
+			return false;
+		}
+		public void removeListener(ILabelProviderListener listener) {
+			// TODO Auto-generated method stub
+			
+		}
+	}
+	
+	
+	protected void createMasterPart(final IManagedForm managedForm,
+			Composite parent) {
+		//final ScrolledForm form = managedForm.getForm();
+		FormToolkit toolkit = managedForm.getToolkit();
+		Section section = toolkit.createSection(parent, Section.TITLE_BAR);
+		section.setText("Queue-Service"); //$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);
+		
+		final SectionPart spart = new SectionPart(section);
+		managedForm.addPart(spart);
+		TreeViewer viewer = new TreeViewer(client, SWT.BORDER);
+		viewer.addSelectionChangedListener(new ISelectionChangedListener() {
+			public void selectionChanged(SelectionChangedEvent event) {
+				managedForm.fireSelectionChanged(spart, event.getSelection());
+			}
+		});
+		Tree qTree = viewer.getTree();
+		TreeItem item = new TreeItem(qTree, SWT.NONE);
+		item.setText("Queue Services");
+		
+		qTree.setLayoutData(new GridData(GridData.FILL_BOTH));
+		viewer.setContentProvider(new MasterContentProvider());
+		viewer.setLabelProvider(new MasterLabelProvider());
+		
+		viewer.setInput(getQueueServices());
+		viewer.expandAll();
+		section.setClient(client);
+
+		
+	}
+	
+	private List<QueueService> getQueueServices(){
+		List<QueueService> queues = new ArrayList<QueueService>();
+		for(int i = 0; i < 5; i++){
+			QueueService queue = new QueueService();
+			queue.setCode("org.jboss.mq.server.jmx.Queue");
+			queue.setQueueServiceName("quickstart_hibernate_action_Request_esb-" + i);
+			queue.setName("jboss.esb.quickstart.destination:service=Queue,name=quickstart_hibernate_action_Request_esb-" + i);
+			queues.add(queue);
+		}
+		
+		return queues;
+	}
+	protected void createToolBarActions(IManagedForm managedForm) {
+		 
+		
+	}
+	protected void registerPages(DetailsPart detailsPart) {
+		detailsPart.registerPage(QueueService.class, new MessageQueueDetailsPage());
+	}
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/models/QueueService.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/models/QueueService.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/models/QueueService.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,68 @@
+package org.jboss.tools.esb.editor.models;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class QueueService {
+	
+	String name;
+	String queueServiceName;
+	String code;
+	List<String> depends; 
+	Map<String, String> attrMap;
+	
+	public void setQueueServiceName(String queueServiceName) {
+		this.queueServiceName = queueServiceName;
+	}
+	
+	
+	public String getQueueServiceName(){
+		return this.queueServiceName;
+	}
+	
+	public String getName(){
+		return this.name;
+	}
+	
+	public void setName(String name) {
+		this.name = name;
+	}
+	
+	public void setCode(String code){
+		this.code = code;
+	}
+	
+	public String getCode(){
+		return this.code;
+	}
+	
+	public void addDepends(String depend){
+		
+		getDepends().add(depend);
+	}
+	
+	public List<String> getDepends(){
+		if(depends == null){
+			depends = new ArrayList<String>();
+		}
+		return this.depends;
+	}
+	
+	public void addAttribute(String name, String value){
+		
+		this.getAttributes().put(name, value);
+		
+		
+	}
+	
+	public Map<String, String> getAttributes(){
+		if(attrMap == null){
+			attrMap = new HashMap<String, String>();
+		}
+		
+		return this.attrMap;
+	}
+
+}

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizard.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizard.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizard.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,150 @@
+package org.jboss.tools.esb.editor.wizards;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.core.runtime.*;
+import org.eclipse.jface.operation.*;
+import java.lang.reflect.InvocationTargetException;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.core.resources.*;
+import org.eclipse.core.runtime.CoreException;
+import java.io.*;
+import org.eclipse.ui.*;
+import org.eclipse.ui.ide.IDE;
+
+/**
+ * This is a sample new wizard. Its role is to create a new file 
+ * resource in the provided container. If the container resource
+ * (a folder or a project) is selected in the workspace 
+ * when the wizard is opened, it will accept it as the target
+ * container. The wizard creates one file with the extension
+ * "mpe". If a sample multi-page editor (also available
+ * as a template) is registered for the same extension, it will
+ * be able to open it.
+ */
+
+public class SampleNewWizard extends Wizard implements INewWizard {
+	private SampleNewWizardPage page;
+	private ISelection selection;
+
+	/**
+	 * Constructor for SampleNewWizard.
+	 */
+	public SampleNewWizard() {
+		super();
+		setNeedsProgressMonitor(true);
+	}
+	
+	/**
+	 * Adding the page to the wizard.
+	 */
+
+	public void addPages() {
+		page = new SampleNewWizardPage(selection);
+		addPage(page);
+	}
+
+	/**
+	 * This method is called when 'Finish' button is pressed in
+	 * the wizard. We will create an operation and run it
+	 * using wizard as execution context.
+	 */
+	public boolean performFinish() {
+		final String containerName = page.getContainerName();
+		final String fileName = page.getFileName();
+		IRunnableWithProgress op = new IRunnableWithProgress() {
+			public void run(IProgressMonitor monitor) throws InvocationTargetException {
+				try {
+					doFinish(containerName, fileName, monitor);
+				} catch (CoreException e) {
+					throw new InvocationTargetException(e);
+				} finally {
+					monitor.done();
+				}
+			}
+		};
+		try {
+			getContainer().run(true, false, op);
+		} catch (InterruptedException e) {
+			return false;
+		} catch (InvocationTargetException e) {
+			Throwable realException = e.getTargetException();
+			MessageDialog.openError(getShell(), "Error", realException.getMessage());
+			return false;
+		}
+		return true;
+	}
+	
+	/**
+	 * The worker method. It will find the container, create the
+	 * file if missing or just replace its contents, and open
+	 * the editor on the newly created file.
+	 */
+
+	private void doFinish(
+		String containerName,
+		String fileName,
+		IProgressMonitor monitor)
+		throws CoreException {
+		// create a sample file
+		monitor.beginTask("Creating " + fileName, 2);
+		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+		IResource resource = root.findMember(new Path(containerName));
+		if (!resource.exists() || !(resource instanceof IContainer)) {
+			throwCoreException("Container \"" + containerName + "\" does not exist.");
+		}
+		IContainer container = (IContainer) resource;
+		final IFile file = container.getFile(new Path(fileName));
+		try {
+			InputStream stream = openContentStream();
+			if (file.exists()) {
+				file.setContents(stream, true, true, monitor);
+			} else {
+				file.create(stream, true, monitor);
+			}
+			stream.close();
+		} catch (IOException e) {
+		}
+		monitor.worked(1);
+		monitor.setTaskName("Opening file for editing...");
+		getShell().getDisplay().asyncExec(new Runnable() {
+			public void run() {
+				IWorkbenchPage page =
+					PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+				try {
+					IDE.openEditor(page, file, true);
+				} catch (PartInitException e) {
+				}
+			}
+		});
+		monitor.worked(1);
+	}
+	
+	/**
+	 * We will initialize file contents with a sample text.
+	 */
+
+	private InputStream openContentStream() {
+		String contents =
+			"This is the initial file contents for *.mpe file that should be word-sorted in the Preview page of the multi-page editor";
+		return new ByteArrayInputStream(contents.getBytes());
+	}
+
+	private void throwCoreException(String message) throws CoreException {
+		IStatus status =
+			new Status(IStatus.ERROR, "org.jboss.tools.esb.editor", IStatus.OK, message, null);
+		throw new CoreException(status);
+	}
+
+	/**
+	 * We will accept the selection in the workbench to see if
+	 * we can initialize from it.
+	 * @see IWorkbenchWizard#init(IWorkbench, IStructuredSelection)
+	 */
+	public void init(IWorkbench workbench, IStructuredSelection selection) {
+		this.selection = selection;
+	}
+}
\ No newline at end of file

Added: workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizardPage.java
===================================================================
--- workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizardPage.java	                        (rev 0)
+++ workspace/Denny/org.jboss.tools.esb.editor/src/org/jboss/tools/esb/editor/wizards/SampleNewWizardPage.java	2008-08-01 03:09:10 UTC (rev 9463)
@@ -0,0 +1,185 @@
+package org.jboss.tools.esb.editor.wizards;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.wizard.WizardPage;
+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.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.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.ContainerSelectionDialog;
+
+/**
+ * The "New" wizard page allows setting the container for the new file as well
+ * as the file name. The page will only accept file name without the extension
+ * OR with the extension that matches the expected one (mpe).
+ */
+
+public class SampleNewWizardPage extends WizardPage {
+	private Text containerText;
+
+	private Text fileText;
+
+	private ISelection selection;
+
+	/**
+	 * Constructor for SampleNewWizardPage.
+	 * 
+	 * @param pageName
+	 */
+	public SampleNewWizardPage(ISelection selection) {
+		super("wizardPage");
+		setTitle("Multi-page Editor File");
+		setDescription("This wizard creates a new file with *.mpe extension that can be opened by a multi-page editor.");
+		this.selection = selection;
+	}
+
+	/**
+	 * @see IDialogPage#createControl(Composite)
+	 */
+	public void createControl(Composite parent) {
+		Composite container = new Composite(parent, SWT.NULL);
+		GridLayout layout = new GridLayout();
+		container.setLayout(layout);
+		layout.numColumns = 3;
+		layout.verticalSpacing = 9;
+		Label label = new Label(container, SWT.NULL);
+		label.setText("&Container:");
+
+		containerText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		containerText.setLayoutData(gd);
+		containerText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				dialogChanged();
+			}
+		});
+
+		Button button = new Button(container, SWT.PUSH);
+		button.setText("Browse...");
+		button.addSelectionListener(new SelectionAdapter() {
+			public void widgetSelected(SelectionEvent e) {
+				handleBrowse();
+			}
+		});
+		label = new Label(container, SWT.NULL);
+		label.setText("&File name:");
+
+		fileText = new Text(container, SWT.BORDER | SWT.SINGLE);
+		gd = new GridData(GridData.FILL_HORIZONTAL);
+		fileText.setLayoutData(gd);
+		fileText.addModifyListener(new ModifyListener() {
+			public void modifyText(ModifyEvent e) {
+				dialogChanged();
+			}
+		});
+		initialize();
+		dialogChanged();
+		setControl(container);
+	}
+
+	/**
+	 * Tests if the current workbench selection is a suitable container to use.
+	 */
+
+	private void initialize() {
+		if (selection != null && selection.isEmpty() == false
+				&& selection instanceof IStructuredSelection) {
+			IStructuredSelection ssel = (IStructuredSelection) selection;
+			if (ssel.size() > 1)
+				return;
+			Object obj = ssel.getFirstElement();
+			if (obj instanceof IResource) {
+				IContainer container;
+				if (obj instanceof IContainer)
+					container = (IContainer) obj;
+				else
+					container = ((IResource) obj).getParent();
+				containerText.setText(container.getFullPath().toString());
+			}
+		}
+		fileText.setText("new_file.mpe");
+	}
+
+	/**
+	 * Uses the standard container selection dialog to choose the new value for
+	 * the container field.
+	 */
+
+	private void handleBrowse() {
+		ContainerSelectionDialog dialog = new ContainerSelectionDialog(
+				getShell(), ResourcesPlugin.getWorkspace().getRoot(), false,
+				"Select new file container");
+		if (dialog.open() == ContainerSelectionDialog.OK) {
+			Object[] result = dialog.getResult();
+			if (result.length == 1) {
+				containerText.setText(((Path) result[0]).toString());
+			}
+		}
+	}
+
+	/**
+	 * Ensures that both text fields are set.
+	 */
+
+	private void dialogChanged() {
+		IResource container = ResourcesPlugin.getWorkspace().getRoot()
+				.findMember(new Path(getContainerName()));
+		String fileName = getFileName();
+
+		if (getContainerName().length() == 0) {
+			updateStatus("File container must be specified");
+			return;
+		}
+		if (container == null
+				|| (container.getType() & (IResource.PROJECT | IResource.FOLDER)) == 0) {
+			updateStatus("File container must exist");
+			return;
+		}
+		if (!container.isAccessible()) {
+			updateStatus("Project must be writable");
+			return;
+		}
+		if (fileName.length() == 0) {
+			updateStatus("File name must be specified");
+			return;
+		}
+		if (fileName.replace('\\', '/').indexOf('/', 1) > 0) {
+			updateStatus("File name must be valid");
+			return;
+		}
+		int dotLoc = fileName.lastIndexOf('.');
+		if (dotLoc != -1) {
+			String ext = fileName.substring(dotLoc + 1);
+			if (ext.equalsIgnoreCase("mpe") == false) {
+				updateStatus("File extension must be \"mpe\"");
+				return;
+			}
+		}
+		updateStatus(null);
+	}
+
+	private void updateStatus(String message) {
+		setErrorMessage(message);
+		setPageComplete(message == null);
+	}
+
+	public String getContainerName() {
+		return containerText.getText();
+	}
+
+	public String getFileName() {
+		return fileText.getText();
+	}
+}
\ No newline at end of file




More information about the jbosstools-commits mailing list