[jboss-cvs] jbosside/ejb3/plugins/org.jboss.ide.eclipse.ejb3.wizards.ui/src/main/org/jboss/ide/eclipse/ejb3/ui/wizards/pages ...

Robert Stryker rawblem at gmail.com
Fri Feb 9 15:11:05 EST 2007


  User: rawb    
  Date: 07/02/09 15:11:05

  Added:       ejb3/plugins/org.jboss.ide.eclipse.ejb3.wizards.ui/src/main/org/jboss/ide/eclipse/ejb3/ui/wizards/pages    
                        NewMessageDrivenBeanWizardPage.java
                        NewSessionBeanWizardPage.java
                        JBossEJB3LibrariesPage.java JBossSelectionPage.java
  Log:
  Recomit all? 
  
  Revision  Changes    Path
  1.3       +0 -0      jbosside/ejb3/plugins/org.jboss.ide.eclipse.ejb3.wizards.ui/src/main/org/jboss/ide/eclipse/ejb3/ui/wizards/pages/NewMessageDrivenBeanWizardPage.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NewMessageDrivenBeanWizardPage.java
  ===================================================================
  RCS file: NewMessageDrivenBeanWizardPage.java
  diff -N NewMessageDrivenBeanWizardPage.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ NewMessageDrivenBeanWizardPage.java	9 Feb 2007 20:11:05 -0000	1.3
  @@ -0,0 +1,161 @@
  +/*
  + * JBoss, a division of Red Hat
  + * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
  + * by the @authors tag. See the copyright.txt in the distribution for a
  + * full listing of individual contributors.
  + *
  + * This is free software; you can redistribute it and/or modify it
  + * under the terms of the GNU Lesser General Public License as
  + * published by the Free Software Foundation; either version 2.1 of
  + * the License, or (at your option) any later version.
  + *
  + * This software is distributed in the hope that it will be useful,
  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  + * Lesser General Public License for more details.
  + *
  + * You should have received a copy of the GNU Lesser General Public
  + * License along with this software; if not, write to the Free
  + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  + */
  +package org.jboss.ide.eclipse.ejb3.ui.wizards.pages;
  +
  +import java.util.ArrayList;
  +
  +import org.eclipse.core.runtime.CoreException;
  +import org.eclipse.core.runtime.IProgressMonitor;
  +import org.eclipse.core.runtime.SubProgressMonitor;
  +import org.eclipse.jdt.core.ICompilationUnit;
  +import org.eclipse.jdt.core.IJavaElement;
  +import org.eclipse.jdt.core.IType;
  +import org.eclipse.jdt.core.dom.AST;
  +import org.eclipse.jdt.core.dom.ASTParser;
  +import org.eclipse.jdt.core.dom.CompilationUnit;
  +import org.eclipse.jdt.core.dom.ImportDeclaration;
  +import org.eclipse.jdt.core.dom.MarkerAnnotation;
  +import org.eclipse.jdt.core.dom.TypeDeclaration;
  +import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
  +import org.eclipse.jdt.ui.wizards.NewTypeWizardPage;
  +import org.eclipse.jface.dialogs.Dialog;
  +import org.eclipse.jface.text.BadLocationException;
  +import org.eclipse.jface.text.Document;
  +import org.eclipse.jface.viewers.IStructuredSelection;
  +import org.eclipse.swt.SWT;
  +import org.eclipse.swt.layout.GridLayout;
  +import org.eclipse.swt.widgets.Composite;
  +import org.eclipse.text.edits.TextEdit;
  +import org.eclipse.text.edits.UndoEdit;
  +import org.eclipse.ui.help.WorkbenchHelp;
  +
  +/**
  + * @author Marshall
  + *
  + * TODO To change the template for this generated type comment go to
  + * Window - Preferences - Java - Code Style - Code Templates
  + */
  +public class NewMessageDrivenBeanWizardPage extends NewTypeWizardPage
  +{
  +   private IStructuredSelection selection;
  +
  +   public NewMessageDrivenBeanWizardPage()
  +   {
  +      super(true, "New Message Driven Bean Page");
  +   }
  +
  +   public void createControl(Composite parent)
  +   {
  +      initializeDialogUnits(parent);
  +
  +      Composite composite = new Composite(parent, SWT.NONE);
  +      int nColumns = 4;
  +
  +      GridLayout layout = new GridLayout();
  +      layout.numColumns = nColumns;
  +      composite.setLayout(layout);
  +
  +      createContainerControls(composite, nColumns);
  +      createEnclosingTypeControls(composite, nColumns);
  +      createSeparator(composite, nColumns);
  +
  +      createPackageControls(composite, nColumns);
  +      createTypeNameControls(composite, nColumns);
  +
  +      createSeparator(composite, nColumns);
  +
  +      createModifierControls(composite, nColumns);
  +
  +      createSuperClassControls(composite, nColumns);
  +      createSuperInterfacesControls(composite, nColumns);
  +
  +      createSeparator(composite, nColumns);
  +
  +      setControl(composite);
  +
  +      Dialog.applyDialogFont(composite);
  +      WorkbenchHelp.setHelp(composite, IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
  +
  +      ArrayList superInterfaces = new ArrayList();
  +      superInterfaces.add("javax.jms.MessageListener");
  +      setSuperInterfaces(superInterfaces, true);
  +   }
  +
  +   public void init(IStructuredSelection selection)
  +   {
  +      this.selection = selection;
  +
  +      IJavaElement element = getInitialJavaElement(selection);
  +      initContainerPage(element);
  +      initTypePage(element);
  +   }
  +
  +   public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException
  +   {
  +      super.createType(monitor);
  +      IType createdBeanType = getCreatedType();
  +
  +      ICompilationUnit beanUnit = createdBeanType.getCompilationUnit();
  +
  +      Document doc = new Document(beanUnit.getSource());
  +
  +      ASTParser c = ASTParser.newParser(AST.JLS3);
  +      c.setSource(beanUnit.getSource().toCharArray());
  +      c.setResolveBindings(true);
  +      CompilationUnit beanAstUnit = (CompilationUnit) c.createAST(null);
  +      AST ast = beanAstUnit.getAST();
  +      beanAstUnit.recordModifications();
  +
  +      ImportDeclaration importDecl = ast.newImportDeclaration();
  +      importDecl.setOnDemand(false);
  +      importDecl.setName(ast.newName(new String[]
  +      {"javax", "ejb", "MessageDriven"}));
  +      beanAstUnit.imports().add(importDecl);
  +
  +      MarkerAnnotation sessionAnnotation = ast.newMarkerAnnotation();
  +      sessionAnnotation.setTypeName(ast.newSimpleName("MessageDriven"));
  +      TypeDeclaration type = (TypeDeclaration) beanAstUnit.types().get(0);
  +      type.modifiers().add(sessionAnnotation);
  +
  +      TextEdit edit = beanAstUnit.rewrite(doc, null);
  +      try
  +      {
  +         UndoEdit undo = edit.apply(doc);
  +         String source = doc.get();
  +         beanUnit.getBuffer().setContents(source);
  +         beanUnit.getBuffer().save(monitor, true);
  +
  +      }
  +      catch (BadLocationException e)
  +      {
  +         e.printStackTrace();
  +      }
  +   }
  +
  +   protected void createTypeMembers(IType newType, ImportsManager imports, IProgressMonitor monitor)
  +         throws CoreException
  +   {
  +      super.createTypeMembers(newType, imports, monitor);
  +
  +      createInheritedMethods(newType, false, true, imports, new SubProgressMonitor(monitor, 1));
  +   }
  +}
  
  
  
  1.4       +0 -0      jbosside/ejb3/plugins/org.jboss.ide.eclipse.ejb3.wizards.ui/src/main/org/jboss/ide/eclipse/ejb3/ui/wizards/pages/NewSessionBeanWizardPage.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NewSessionBeanWizardPage.java
  ===================================================================
  RCS file: NewSessionBeanWizardPage.java
  diff -N NewSessionBeanWizardPage.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ NewSessionBeanWizardPage.java	9 Feb 2007 20:11:05 -0000	1.4
  @@ -0,0 +1,621 @@
  +/*
  + * JBoss, a division of Red Hat
  + * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
  + * by the @authors tag. See the copyright.txt in the distribution for a
  + * full listing of individual contributors.
  + *
  + * This is free software; you can redistribute it and/or modify it
  + * under the terms of the GNU Lesser General Public License as
  + * published by the Free Software Foundation; either version 2.1 of
  + * the License, or (at your option) any later version.
  + *
  + * This software is distributed in the hope that it will be useful,
  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  + * Lesser General Public License for more details.
  + *
  + * You should have received a copy of the GNU Lesser General Public
  + * License along with this software; if not, write to the Free
  + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  + */
  +package org.jboss.ide.eclipse.ejb3.ui.wizards.pages;
  +
  +import org.eclipse.core.runtime.CoreException;
  +import org.eclipse.core.runtime.IPath;
  +import org.eclipse.core.runtime.IProgressMonitor;
  +import org.eclipse.core.runtime.IStatus;
  +import org.eclipse.jdt.core.ICompilationUnit;
  +import org.eclipse.jdt.core.IJavaElement;
  +import org.eclipse.jdt.core.IPackageFragment;
  +import org.eclipse.jdt.core.IPackageFragmentRoot;
  +import org.eclipse.jdt.core.IType;
  +import org.eclipse.jdt.core.JavaConventions;
  +import org.eclipse.jdt.core.JavaModelException;
  +import org.eclipse.jdt.core.dom.AST;
  +import org.eclipse.jdt.core.dom.ASTParser;
  +import org.eclipse.jdt.core.dom.CompilationUnit;
  +import org.eclipse.jdt.core.dom.ImportDeclaration;
  +import org.eclipse.jdt.core.dom.MarkerAnnotation;
  +import org.eclipse.jdt.core.dom.TypeDeclaration;
  +import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
  +import org.eclipse.jdt.internal.ui.JavaPlugin;
  +import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
  +import org.eclipse.jdt.internal.ui.refactoring.contentassist.ControlContentAssistHelper;
  +import org.eclipse.jdt.internal.ui.refactoring.contentassist.JavaPackageCompletionProcessor;
  +import org.eclipse.jdt.internal.ui.wizards.NewWizardMessages;
  +import org.eclipse.jdt.ui.ISharedImages;
  +import org.eclipse.jdt.ui.JavaUI;
  +import org.eclipse.jdt.ui.wizards.NewTypeWizardPage;
  +import org.eclipse.jface.dialogs.Dialog;
  +import org.eclipse.jface.text.BadLocationException;
  +import org.eclipse.jface.text.Document;
  +import org.eclipse.jface.viewers.IStructuredSelection;
  +import org.eclipse.swt.SWT;
  +import org.eclipse.swt.events.ModifyEvent;
  +import org.eclipse.swt.events.ModifyListener;
  +import org.eclipse.swt.events.SelectionEvent;
  +import org.eclipse.swt.events.SelectionListener;
  +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.Control;
  +import org.eclipse.swt.widgets.Display;
  +import org.eclipse.swt.widgets.Label;
  +import org.eclipse.swt.widgets.Text;
  +import org.eclipse.text.edits.MalformedTreeException;
  +import org.eclipse.text.edits.TextEdit;
  +import org.eclipse.text.edits.UndoEdit;
  +import org.eclipse.ui.help.WorkbenchHelp;
  +import org.jboss.ide.eclipse.ejb3.ui.EJB3WizardsUIPlugin;
  +
  +public class NewSessionBeanWizardPage extends NewTypeWizardPage
  +{
  +
  +   public static final String BEAN_PACKAGE_NAME = "NewSessionBeanWizard.beanPackageName";
  +
  +   public static final String BEAN_NAME = "NewSessionBeanWizard.beanName";
  +
  +   public static final String REMOTE_INTERFACE_PACKAGE_NAME = "NewSessionBeanWizard.remoteInterfacePackageName";
  +
  +   public static final String STATEFUL = "Stateful";
  +
  +   public static final String STATELESS = "Stateless";
  +
  +   private String remoteInterfacePackage, beanClass, remoteInterfaceName, beanPackage;
  +
  +   private Label remoteInterfaceNameLabel;
  +
  +   private Label beanClassName;
  +
  +   private Text beanNameText;
  +
  +   private Text beanPackageName;
  +
  +   private Text remoteInterfacePackageText;
  +
  +   private JavaPackageCompletionProcessor packageCompletionProcessor;
  +
  +   private Button statelessButton, statefulButton, useCustomRemoteInterfacePackageButton;
  +
  +   private boolean useCustomRemoteInterfacePackage;
  +
  +   private ModifyListener listener;
  +
  +   private IPackageFragment beanPackageFragment, remoteInterfacePackageFragment;
  +
  +   private String beanType;
  +
  +   private IStructuredSelection selection;
  +
  +   public NewSessionBeanWizardPage()
  +   {
  +      super(true, EJB3WizardsUIPlugin.getResourceString("NewSessionBeanWizard.title"));
  +      setTitle(EJB3WizardsUIPlugin.getResourceString("NewSessionBeanWizard.message"));
  +      setDescription(EJB3WizardsUIPlugin.getResourceString("NewSessionBeanWizard.description"));
  +      
  +      packageCompletionProcessor = new JavaPackageCompletionProcessor();
  +      beanClass = "";
  +   }
  +
  +   public void createControl(Composite parent)
  +   {
  +      initializeDialogUnits(parent);
  +
  +      Composite composite = new Composite(parent, SWT.NONE);
  +      listener = new ModifyListener()
  +      {
  +         public void modifyText(ModifyEvent e)
  +         {
  +            updateTypeNames();
  +            if (e.getSource() == remoteInterfacePackageText)
  +            {
  +               handleFieldChanged(REMOTE_INTERFACE_PACKAGE_NAME);
  +            }
  +            else if (e.getSource() == beanPackageName)
  +            {
  +               handleFieldChanged(BEAN_PACKAGE_NAME);
  +               if (!useCustomRemoteInterfacePackage)
  +               {
  +                  handleFieldChanged(REMOTE_INTERFACE_PACKAGE_NAME);
  +               }
  +            }
  +            else if (e.getSource() == beanNameText)
  +            {
  +               handleFieldChanged(BEAN_NAME);
  +            }
  +         }
  +      };
  +
  +      int nColumns = 4;
  +
  +      GridLayout layout = new GridLayout();
  +      layout.numColumns = nColumns;
  +      composite.setLayout(layout);
  +
  +      createContainerControls(composite, nColumns);
  +      createEnclosingTypeControls(composite, nColumns);
  +      createBeanTypeControls(composite, nColumns);
  +      createSeparator(composite, nColumns);
  +
  +      createBeanNameControls(composite, nColumns);
  +      createRemoteInterfaceControls(composite, nColumns);
  +
  +      createSeparator(composite, nColumns);
  +
  +      createModifierControls(composite, nColumns);
  +
  +      createSuperClassControls(composite, nColumns);
  +      createSuperInterfacesControls(composite, nColumns);
  +
  +      setControl(composite);
  +
  +      IJavaElement element = getInitialJavaElement(selection);
  +      if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT)
  +//            || element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT)
  +      {
  +         beanPackageName.setText(element.getElementName());
  +         remoteInterfacePackageText.setText(element.getElementName());
  +      }
  +
  +      Dialog.applyDialogFont(composite);
  +      WorkbenchHelp.setHelp(composite, IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
  +   }
  +
  +   protected void createBeanTypeControls(Composite composite, int nColumns)
  +   {
  +      SelectionListener listener = new SelectionListener()
  +      {
  +         public void widgetDefaultSelected(SelectionEvent e)
  +         {
  +            widgetSelected(e);
  +         }
  +
  +         public void widgetSelected(SelectionEvent e)
  +         {
  +            if (statelessButton.getSelection())
  +               beanType = STATELESS;
  +            else
  +               beanType = STATEFUL;
  +         }
  +      };
  +
  +      Label beanTypeLabel = createLabel(composite, EJB3WizardsUIPlugin
  +            .getResourceString("NewSessionBeanWizard.beanTypeLabel"));
  +      statefulButton = new Button(composite, SWT.RADIO);
  +      statefulButton.setText(EJB3WizardsUIPlugin.getResourceString("NewSessionBeanWizard.statefulButtonLabel"));
  +      statefulButton.addSelectionListener(listener);
  +
  +      statelessButton = new Button(composite, SWT.RADIO);
  +      statelessButton.setText(EJB3WizardsUIPlugin.getResourceString("NewSessionBeanWizard.statelessButtonLabel"));
  +      statelessButton.setSelection(true);
  +      beanType = STATELESS;
  +      statelessButton.addSelectionListener(listener);
  +   }
  +
  +   protected void createBeanNameControls(Composite composite, int nColumns)
  +   {
  +      Label sessionPackageNameLabel = createLabel(composite, EJB3WizardsUIPlugin
  +            .getResourceString("NewSessionBeanWizard.beanPackageLabel"));
  +      beanPackageName = new Text(composite, SWT.BORDER);
  +      beanPackageName.addModifyListener(listener);
  +      fillAcrossColumns(beanPackageName, nColumns - 1);
  +      ControlContentAssistHelper.createTextContentAssistant(beanPackageName, packageCompletionProcessor);
  +
  +      Label beanNameLabel = createLabel(composite, EJB3WizardsUIPlugin
  +            .getResourceString("NewSessionBeanWizard.beanNameLabel"));
  +      beanNameText = new Text(composite, SWT.BORDER);
  +      beanNameText.addModifyListener(listener);
  +      fillAcrossColumns(beanNameText, nColumns - 1);
  +
  +      Label sessionClassNameLabel = createLabel(composite, EJB3WizardsUIPlugin
  +            .getResourceString("NewSessionBeanWizard.beanClassNameLabel"));
  +      beanClassName = createLabelWithImage(composite, "", JavaUI.getSharedImages().getImage(
  +            ISharedImages.IMG_OBJS_CLASS), nColumns - 1);
  +   }
  +
  +   protected void createRemoteInterfaceControls(Composite composite, int nColumns)
  +   {
  +      //Composite remoteLabelComposite = new Composite(composite, SWT.NONE);
  +      //remoteLabelComposite.setLayout(new GridLayout(2, false));
  +
  +      useCustomRemoteInterfacePackageButton = new Button(composite, SWT.CHECK);
  +      useCustomRemoteInterfacePackageButton.setText(EJB3WizardsUIPlugin
  +            .getResourceString("NewSessionBeanWizard.useCustomInterfacePackageButtonLabel"));
  +      //Label remoteInterfacePackageLabel = createLabel(remoteLabelComposite, "Remote Interface Package:");
  +      //remoteInterfacePackageLabel.setLayoutData(new GridData(SWT.FILL, GridData.VERTICAL_ALIGN_CENTER, true, false));
  +      useCustomRemoteInterfacePackageButton.addSelectionListener(new SelectionListener()
  +      {
  +         public void widgetDefaultSelected(SelectionEvent e)
  +         {
  +            widgetSelected(e);
  +         }
  +
  +         public void widgetSelected(SelectionEvent e)
  +         {
  +            useCustomRemoteInterfacePackage = !useCustomRemoteInterfacePackage;
  +
  +            Display.getDefault().asyncExec(new Runnable()
  +            {
  +               public void run()
  +               {
  +                  if (!useCustomRemoteInterfacePackage)
  +                  {
  +                     remoteInterfacePackageText.removeModifyListener(listener);
  +                  }
  +                  else
  +                  {
  +                     remoteInterfacePackageText.addModifyListener(listener);
  +                  }
  +
  +                  remoteInterfacePackageText.setEnabled(useCustomRemoteInterfacePackage);
  +               }
  +            });
  +         }
  +      });
  +
  +      remoteInterfacePackageText = new Text(composite, SWT.BORDER);
  +      remoteInterfacePackageText.setEnabled(false);
  +
  +      fillAcrossColumns(remoteInterfacePackageText, nColumns - 1);
  +      ControlContentAssistHelper.createTextContentAssistant(remoteInterfacePackageText, packageCompletionProcessor);
  +
  +      createLabel(composite, EJB3WizardsUIPlugin.getResourceString("NewSessionBeanWizard.remoteInterfaceNameLabel"));
  +      remoteInterfaceNameLabel = createLabelWithImage(composite, "", JavaUI.getSharedImages().getImage(
  +            ISharedImages.IMG_OBJS_INTERFACE), nColumns - 1);
  +   }
  +
  +   public void createType(IProgressMonitor monitor) throws CoreException, InterruptedException
  +   {
  +      super.createType(monitor);
  +
  +      IType createdBeanType = getCreatedType();
  +      //			
  +      //			AST ast = new AST();
  +      //			MarkerAnnotation annotation = ast.newMarkerAnnotation();
  +      //			annotation.setTypeName(ast.newSimpleName("Stateless"));
  +      //			beanType.getCompilationUnit().becomeWorkingCopy()
  +
  +      ICompilationUnit remoteInterfaceUnit = createRemoteInterface(monitor);
  +      ICompilationUnit beanUnit = createdBeanType.getCompilationUnit();
  +
  +      Document doc = new Document(beanUnit.getSource());
  +
  +      ASTParser c = ASTParser.newParser(AST.JLS3);
  +      c.setSource(beanUnit.getSource().toCharArray());
  +      c.setResolveBindings(true);
  +      CompilationUnit beanAstUnit = (CompilationUnit) c.createAST(null);
  +      AST ast = beanAstUnit.getAST();
  +      beanAstUnit.recordModifications();
  +
  +      ImportDeclaration importDecl = ast.newImportDeclaration();
  +      System.out.println("javax.ejb." + beanType);
  +      importDecl.setName(ast.newName(new String[]
  +      {"javax", "ejb", beanType}));
  +      importDecl.setOnDemand(false);
  +      beanAstUnit.imports().add(importDecl);
  +
  +      importDecl = ast.newImportDeclaration();
  +
  +      String pkgElements[] = remoteInterfacePackage.split("\\.");
  +      String fullImport[] = new String[pkgElements.length + 1];
  +      System.arraycopy(pkgElements, 0, fullImport, 0, pkgElements.length);
  +      fullImport[fullImport.length - 1] = remoteInterfaceName;
  +
  +      importDecl.setName(ast.newName(fullImport));
  +      importDecl.setOnDemand(false);
  +      beanAstUnit.imports().add(importDecl);
  +
  +      MarkerAnnotation sessionAnnotation = ast.newMarkerAnnotation();
  +      sessionAnnotation.setTypeName(ast.newSimpleName(beanType));
  +      TypeDeclaration type = (TypeDeclaration) beanAstUnit.types().get(0);
  +      type.modifiers().add(sessionAnnotation);
  +
  +      type.superInterfaceTypes().add(ast.newSimpleType(ast.newSimpleName(remoteInterfaceName)));
  +      TextEdit edit = beanAstUnit.rewrite(doc, null);
  +      try
  +      {
  +         UndoEdit undo = edit.apply(doc);
  +         String source = doc.get();
  +         beanUnit.getBuffer().setContents(source);
  +         beanUnit.getBuffer().save(monitor, true);
  +
  +      } catch (MalformedTreeException e) {
  +		// TODO Auto-generated catch block
  +		e.printStackTrace();
  +	} catch (BadLocationException e) {
  +		// TODO Auto-generated catch block
  +		e.printStackTrace();
  +	}
  +   }
  +
  +   public ICompilationUnit createRemoteInterface(IProgressMonitor monitor) throws CoreException, InterruptedException
  +   {
  +      // lame.
  +      String source = "package " + remoteInterfacePackage + ";\n" + "\n" + "import javax.ejb.Remote;\n" + "\n"
  +            + "@Remote\n" + "public interface " + remoteInterfaceName + " {\n" + "\n" + "}\n";
  +
  +      //System.out.println(remoteInterfaceName + " = " + source);
  +
  +      System.out.println("remoteInterfacePackageFragment exists?" + remoteInterfacePackageFragment.exists());
  +
  +      return remoteInterfacePackageFragment.createCompilationUnit(remoteInterfaceName + ".java", source, true, monitor);
  +      //			AST ast = new AST();
  +      //			CompilationUnit unit = ast.newCompilationUnit();
  +      //			PackageDeclaration packageDeclaration = ast.newPackageDeclaration();
  +      //			packageDeclaration.setName(ast.newSimpleName(remoteInterfacePackageFragment.getElementName()));
  +      //			unit.setPackage(packageDeclaration);
  +      //			ImportDeclaration importDecl = ast.newImportDeclaration();
  +      //			importDecl.setName(ast.newName(new String[] { "javax", "ejb", "Remote"}));
  +      //			importDecl.setOnDemand(false);
  +      //			unit.imports().add(importDecl);
  +      //			
  +      //			TypeDeclaration type = ast.newTypeDeclaration();
  +      //			type.setInterface(true);
  +      //			type.setModifiers(Modifier.PUBLIC);
  +      //			type.setName(ast.newSimpleName(remoteInterfaceName.getText()));
  +      //			MarkerAnnotation remoteAnnotation = ast.newMarkerAnnotation();
  +      //			remoteAnnotation.setTypeName(ast.newSimpleName("Remote"));
  +      //			type.modifiers().add(remoteAnnotation);
  +      //			
  +      //			unit.types().add(type);
  +      //			System.out.println(ast.toString());
  +
  +   }
  +
  +   protected void handleFieldChanged(String fieldName)
  +   {
  +      super.handleFieldChanged(fieldName);
  +
  +      try
  +      {
  +         if (fieldName.equals(BEAN_PACKAGE_NAME))
  +         {
  +            beanPackageFragment = getPackageFragment(beanPackageName.getText());
  +            beanPackage = beanPackageName.getText();
  +            if (!useCustomRemoteInterfacePackage)
  +            {
  +               updateRemoteInterfaceValues();
  +            }
  +         }
  +         else if (fieldName.equals(REMOTE_INTERFACE_PACKAGE_NAME))
  +         {
  +            updateRemoteInterfaceValues();
  +         }
  +         else if (fieldName.equals(BEAN_NAME))
  +         {
  +            remoteInterfaceName = beanNameText.getText();
  +            beanClass = beanNameText.getText() + "Bean";
  +         }
  +      }
  +      catch (CoreException e)
  +      {
  +         // Error parsing the text -- just ignore it
  +      }
  +   }
  +
  +   public IPackageFragment getPackageFragment()
  +   {
  +      return beanPackageFragment;
  +   }
  +
  +   protected IPackageFragment getPackageFragment(String packageName) throws CoreException
  +   {
  +      // This was copied over from NewTypeWizardPage.packageChanged, and made more generic so we could use it for multiple package inputs
  +      StatusInfo status = new StatusInfo();
  +
  +      if (packageName.length() > 0)
  +      {
  +         IStatus val = JavaConventions.validatePackageName(packageName);
  +         if (val.getSeverity() == IStatus.ERROR)
  +         {
  +            status.setError(NewWizardMessages.bind(NewWizardMessages.NewTypeWizardPage_error_InvalidPackageName, val
  +                  .getMessage())); //$NON-NLS-1$
  +            throw new CoreException(status);
  +         }
  +         else if (val.getSeverity() == IStatus.WARNING)
  +         {
  +            status.setWarning(NewWizardMessages.bind(
  +                  NewWizardMessages.NewTypeWizardPage_warning_DiscouragedPackageName, val.getMessage())); //$NON-NLS-1$
  +            // continue
  +         }
  +      }
  +      else
  +      {
  +         status.setWarning(NewWizardMessages.NewTypeWizardPage_warning_DefaultPackageDiscouraged); //$NON-NLS-1$
  +      }
  +
  +      IPackageFragmentRoot root = getPackageFragmentRoot();
  +      if (root != null)
  +      {
  +         if (root.getJavaProject().exists() && packageName.length() > 0)
  +         {
  +            try
  +            {
  +               IPath rootPath = root.getPath();
  +               IPath outputPath = root.getJavaProject().getOutputLocation();
  +               if (rootPath.isPrefixOf(outputPath) && !rootPath.equals(outputPath))
  +               {
  +                  // if the bin folder is inside of our root, don't allow to name a package
  +                  // like the bin folder
  +                  IPath packagePath = rootPath.append(packageName.replace('.', '/'));
  +                  if (outputPath.isPrefixOf(packagePath))
  +                  {
  +                     status.setError(NewWizardMessages.NewTypeWizardPage_error_ClashOutputLocation); //$NON-NLS-1$
  +                     throw new CoreException(status);
  +                  }
  +               }
  +            }
  +            catch (JavaModelException e)
  +            {
  +               JavaPlugin.log(e);
  +               // let pass			
  +            }
  +         }
  +
  +         return root.getPackageFragment(packageName);
  +      }
  +      else
  +      {
  +         status.setError(""); //$NON-NLS-1$
  +      }
  +
  +      throw new CoreException(status);
  +   }
  +
  +   protected IStatus containerChanged()
  +   {
  +      IStatus status = super.containerChanged();
  +      packageCompletionProcessor.setPackageFragmentRoot(getPackageFragmentRoot());
  +
  +      return status;
  +   }
  +
  +   class TypeNameGetter implements Runnable
  +   {
  +      public String typeName;
  +
  +      public TypeNameGetter()
  +      {
  +         typeName = "";
  +      }
  +
  +      public void run()
  +      {
  +         if (beanNameText == null)
  +         {
  +            typeName = "";
  +            return;
  +         }
  +
  +         if (!beanNameText.isDisposed())
  +         {
  +            typeName = beanNameText.getText() + "Bean";
  +         }
  +      }
  +   }
  +
  +   public String getTypeName()
  +   {
  +      // Overridden so we can provide the type name from our text box instead
  +      //			TypeNameGetter getter = new TypeNameGetter();
  +      //			Display.getDefault().asyncExec(getter);
  +      //			return getter.typeName;
  +
  +      return beanClass;
  +   }
  +
  +   String getClassName(String pkg, String clazz)
  +   {
  +      if (pkg != null && pkg.length() > 0)
  +      {
  +         return pkg + "." + clazz;
  +      }
  +      else
  +         return clazz;
  +   }
  +
  +   void updateTypeNames()
  +   {
  +      Display.getDefault().asyncExec(new Runnable()
  +      {
  +         public void run()
  +         {
  +            String packageName = beanPackageName.getText();
  +            if (!useCustomRemoteInterfacePackage)
  +            {
  +               remoteInterfacePackageText.setText(packageName);
  +            }
  +
  +            String interfacePackageName = remoteInterfacePackageText.getText();
  +
  +            String beanName = beanNameText.getText();
  +            beanClassName.setText(getClassName(packageName, beanName)
  +                  + (beanName != null && beanName.length() > 0 ? "Bean" : ""));
  +            remoteInterfaceNameLabel.setText(getClassName(interfacePackageName, beanName));
  +
  +            updateRemoteInterfaceValues();
  +         }
  +      });
  +
  +   }
  +
  +   void updateRemoteInterfaceValues()
  +   {
  +      try
  +      {
  +         remoteInterfaceName = beanNameText.getText();
  +         remoteInterfacePackage = remoteInterfacePackageText.getText();
  +         remoteInterfacePackageFragment = getPackageFragment(remoteInterfacePackage);
  +      }
  +      catch (CoreException e)
  +      {
  +         //e.printStackTrace();
  +      }
  +   }
  +
  +   protected void fillAcrossColumns(Control control, int nColumns)
  +   {
  +      GridData data = new GridData(SWT.FILL, GridData.VERTICAL_ALIGN_CENTER, true, false);
  +      data.horizontalSpan = nColumns;
  +
  +      control.setLayoutData(data);
  +   }
  +
  +   protected Label createLabel(Composite parent, String text)
  +   {
  +      Label label = new Label(parent, SWT.NONE);
  +      label.setText(text);
  +      return label;
  +   }
  +
  +   protected Label createLabelWithImage(Composite parent, String text, Image image, int compositeColSpan)
  +   {
  +      Composite c = new Composite(parent, SWT.NONE);
  +      c.setLayout(new GridLayout(2, false));
  +      fillAcrossColumns(c, compositeColSpan);
  +
  +      Label imgLabel = new Label(c, SWT.NONE);
  +      imgLabel.setImage(image);
  +
  +      Label label = new Label(c, SWT.NONE);
  +      label.setText(text);
  +
  +      GridData d = new GridData();
  +      d.grabExcessHorizontalSpace = true;
  +      d.horizontalAlignment = SWT.FILL;
  +      label.setLayoutData(d);
  +      return label;
  +   }
  +
  +   public void init(IStructuredSelection selection)
  +   {
  +      this.selection = selection;
  +
  +      IJavaElement element = getInitialJavaElement(selection);
  +      initContainerPage(element);
  +      initTypePage(element);
  +   }
  +}
  \ No newline at end of file
  
  
  
  1.6       +0 -0      jbosside/ejb3/plugins/org.jboss.ide.eclipse.ejb3.wizards.ui/src/main/org/jboss/ide/eclipse/ejb3/ui/wizards/pages/JBossEJB3LibrariesPage.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossEJB3LibrariesPage.java
  ===================================================================
  RCS file: JBossEJB3LibrariesPage.java
  diff -N JBossEJB3LibrariesPage.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ JBossEJB3LibrariesPage.java	9 Feb 2007 20:11:05 -0000	1.6
  @@ -0,0 +1,98 @@
  +/*
  + * JBoss, a division of Red Hat
  + * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
  + * by the @authors tag. See the copyright.txt in the distribution for a
  + * full listing of individual contributors.
  + *
  + * This is free software; you can redistribute it and/or modify it
  + * under the terms of the GNU Lesser General Public License as
  + * published by the Free Software Foundation; either version 2.1 of
  + * the License, or (at your option) any later version.
  + *
  + * This software is distributed in the hope that it will be useful,
  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  + * Lesser General Public License for more details.
  + *
  + * You should have received a copy of the GNU Lesser General Public
  + * License along with this software; if not, write to the Free
  + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  + */
  +package org.jboss.ide.eclipse.ejb3.ui.wizards.pages;
  +
  +import org.eclipse.core.runtime.IPath;
  +import org.eclipse.core.runtime.NullProgressMonitor;
  +import org.eclipse.core.runtime.Path;
  +import org.eclipse.jdt.core.IClasspathEntry;
  +import org.eclipse.jdt.core.JavaCore;
  +import org.eclipse.jdt.ui.wizards.IClasspathContainerPage;
  +import org.jboss.ide.eclipse.as.core.runtime.server.AbstractJBossServerRuntime;
  +import org.jboss.ide.eclipse.as.core.server.JBossServer;
  +import org.jboss.ide.eclipse.ejb3.core.EJB3WizardsCorePlugin;
  +import org.jboss.ide.eclipse.ejb3.core.classpath.EJB3ClasspathContainer;
  +import org.jboss.ide.eclipse.ejb3.ui.EJB3WizardsUIPlugin;
  +
  +public class JBossEJB3LibrariesPage extends JBossSelectionPage implements IClasspathContainerPage
  +{
  +
  +   private IClasspathEntry classpathEntry;
  +
  +   public JBossEJB3LibrariesPage()
  +   {
  +      super();
  +   }
  +
  +   private boolean jbossServerHasEJB3(JBossServer jbossServer)
  +   {
  +      IPath jarToCheck = EJB3ClasspathContainer.jbossConfigRelativeJarPaths[0];
  +
  +      String jbossBaseDir = jbossServer.getServer().getRuntime().getLocation().toOSString();
  +      AbstractJBossServerRuntime rt = (AbstractJBossServerRuntime)jbossServer.getServer()
  +      			.getRuntime().loadAdapter(AbstractJBossServerRuntime.class, new NullProgressMonitor());
  +      String jbossConfigDir = rt.getJBossConfiguration();
  +      IPath absoluteJarPath = new Path(jbossBaseDir).append("server").append(jbossConfigDir).append(jarToCheck);
  +      return absoluteJarPath.toFile().exists();
  +   }
  +
  +   public boolean finish()
  +   {
  +
  +      if (jbossServer != null)
  +      {
  +         JBossServer jbossServer = EJB3WizardsCorePlugin.getDefault().getSelectedServer();
  +         if (jbossServerHasEJB3(jbossServer))
  +         {
  +            classpathEntry = JavaCore.newContainerEntry(new Path(EJB3ClasspathContainer.CONTAINER_ID)
  +                  .append(jbossServer.getServer().getName()), true);
  +            return true;
  +         }
  +         else
  +         {
  +            EJB3WizardsUIPlugin
  +                  .error("The selected configuration (\""
  +                        + jbossServer.getServer().getName()
  +                        + "\")"
  +                        + " does not contain the expected EJB3 libraries. Please install JBoss with EJB3 enabled, or try another configuration. ");
  +         }
  +      }
  +
  +      return false;
  +   }
  +
  +   public boolean isPageComplete()
  +   {
  +      return jbossServer != null && isCurrentPage();
  +   }
  +
  +   public IClasspathEntry getSelection()
  +   {
  +      return classpathEntry;
  +   }
  +
  +   public void setSelection(IClasspathEntry containerEntry)
  +   {
  +      classpathEntry = containerEntry;
  +   }
  +
  +}
  
  
  
  1.3       +0 -0      jbosside/ejb3/plugins/org.jboss.ide.eclipse.ejb3.wizards.ui/src/main/org/jboss/ide/eclipse/ejb3/ui/wizards/pages/JBossSelectionPage.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: JBossSelectionPage.java
  ===================================================================
  RCS file: JBossSelectionPage.java
  diff -N JBossSelectionPage.java
  --- /dev/null	1 Jan 1970 00:00:00 -0000
  +++ JBossSelectionPage.java	9 Feb 2007 20:11:05 -0000	1.3
  @@ -0,0 +1,167 @@
  +/*
  + * JBoss, a division of Red Hat
  + * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
  + * by the @authors tag. See the copyright.txt in the distribution for a
  + * full listing of individual contributors.
  + *
  + * This is free software; you can redistribute it and/or modify it
  + * under the terms of the GNU Lesser General Public License as
  + * published by the Free Software Foundation; either version 2.1 of
  + * the License, or (at your option) any later version.
  + *
  + * This software is distributed in the hope that it will be useful,
  + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  + * Lesser General Public License for more details.
  + *
  + * You should have received a copy of the GNU Lesser General Public
  + * License along with this software; if not, write to the Free
  + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  + * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  + */
  +package org.jboss.ide.eclipse.ejb3.ui.wizards.pages;
  +
  +import org.eclipse.jface.viewers.ArrayContentProvider;
  +import org.eclipse.jface.viewers.ISelectionChangedListener;
  +import org.eclipse.jface.viewers.IStructuredSelection;
  +import org.eclipse.jface.viewers.SelectionChangedEvent;
  +import org.eclipse.jface.viewers.TableViewer;
  +import org.eclipse.jface.wizard.WizardPage;
  +import org.eclipse.swt.SWT;
  +import org.eclipse.swt.events.SelectionEvent;
  +import org.eclipse.swt.events.SelectionListener;
  +import org.eclipse.swt.layout.FillLayout;
  +import org.eclipse.swt.layout.GridData;
  +import org.eclipse.swt.layout.GridLayout;
  +import org.eclipse.swt.layout.RowLayout;
  +import org.eclipse.swt.widgets.Button;
  +import org.eclipse.swt.widgets.Composite;
  +import org.eclipse.ui.PlatformUI;
  +import org.eclipse.wst.server.core.IServer;
  +import org.eclipse.wst.server.core.ServerCore;
  +import org.eclipse.wst.server.ui.ServerUICore;
  +import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
  +import org.eclipse.wst.server.ui.internal.actions.NewServerAction;
  +import org.jboss.ide.eclipse.as.core.server.JBossServer;
  +import org.jboss.ide.eclipse.ejb3.core.EJB3WizardsCorePlugin;
  +
  +public class JBossSelectionPage extends WizardPage
  +{
  +
  +   protected TableViewer servers;
  +
  +   protected JBossServer jbossServer;
  +
  +   protected Button newServer;
  +
  +   public JBossSelectionPage()
  +   {
  +      super("JBoss Server Selection");
  +   }
  +
  +   public void createControl(Composite parent)
  +   {
  +
  +      Composite main = new Composite(parent, SWT.NONE);
  +      main.setLayout(new GridLayout());
  +
  +      Composite configurationComposite = new Composite(main, SWT.NONE);
  +      configurationComposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
  +
  +      configurationComposite.setLayout(new FillLayout());
  +
  +      servers = new TableViewer(configurationComposite);
  +      
  +      servers.setContentProvider(new ArrayContentProvider());
  +      servers.setLabelProvider(ServerUICore.getLabelProvider());
  +      servers.addSelectionChangedListener(new ISelectionChangedListener()
  +      {
  +         public void selectionChanged(SelectionChangedEvent event)
  +         {
  +            serverSelected();
  +         }
  +      });
  +
  +      refreshConfigurations();
  +
  +      Composite links = new Composite(main, SWT.NONE);
  +      links.setLayout(new RowLayout());
  +
  +      newServer = new Button(links, SWT.NONE);
  +      newServer.setText("Create a JBoss Server");
  +      newServer.addSelectionListener(new SelectionListener()
  +      {
  +         public void widgetDefaultSelected(SelectionEvent e)
  +         {
  +            widgetSelected(e);
  +         }
  +
  +         public void widgetSelected(SelectionEvent e)
  +         {
  +            createJBossServer();
  +         }
  +      });
  +
  +//      editServer = new Button(links, SWT.NONE);
  +//      editServer.setText("Edit JBoss Server");
  +//      editServer.addSelectionListener(new SelectionListener()
  +//      {
  +//         public void widgetDefaultSelected(SelectionEvent e)
  +//         {
  +//            widgetSelected(e);
  +//         }
  +//
  +//         public void widgetSelected(SelectionEvent e)
  +//         {
  +//            editJBossServer();
  +//         }
  +//      });
  +
  +//      editServer.setEnabled(false);
  +
  +      setControl(main);
  +   }
  +
  +   private void refreshConfigurations()
  +   {
  +	   servers.setInput(ServerCore.getServers());
  +   }
  +
  +   private void createJBossServer()
  +   {
  +	   NewServerAction action = new NewServerAction();
  +	   action.init(PlatformUI.getWorkbench().getActiveWorkbenchWindow());
  +	   action.run(null);
  +	   
  +//      int status = DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUIPlugin.getShell(),
  +//            new StructuredSelection(), IDebugUIConstants.ID_DEBUG_LAUNCH_GROUP);
  +
  +      refreshConfigurations();
  +   }
  +
  +   private void editJBossServer()
  +   {
  +	   
  +	   ServerUIPlugin.editServer(jbossServer.getServer());
  +//      int status = DebugUITools.openLaunchConfigurationDialogOnGroup(DebugUIPlugin.getShell(), new StructuredSelection(
  +//            configuration), IDebugUIConstants.ID_DEBUG_LAUNCH_GROUP);
  +
  +      refreshConfigurations();
  +   }
  +
  +   protected void serverSelected()
  +   {
  +      IStructuredSelection selection = (IStructuredSelection) servers.getSelection();
  +      IServer server = (IServer) selection.getFirstElement();
  +      jbossServer = (JBossServer) server.getAdapter(JBossServer.class);
  +      
  +      getWizard().getContainer().updateButtons();
  +      EJB3WizardsCorePlugin.getDefault().setSelectedServer(jbossServer);
  +//      editServer.setEnabled(true);
  +   }
  +
  +   public JBossServer getServer()
  +   {
  +      return jbossServer;
  +   }
  +}
  
  
  



More information about the jboss-cvs-commits mailing list