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