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

Robert Stryker rob.stryker at jboss.com
Wed Apr 18 12:52:15 EDT 2007


  User: rawb    
  Date: 07/04/18 12:52:15

  Added:       core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages   
                        FilesetInfoWizardPage.java
                        PackageInfoWizardPage.java
                        DefaultJARConfigWizardPage.java
  Log:
  refactored to archive rather than package, a la max
  
  Revision  Changes    Path
  1.1      date: 2007/04/18 16:52:15;  author: rawb;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/FilesetInfoWizardPage.java
  
  Index: FilesetInfoWizardPage.java
  ===================================================================
  package org.jboss.ide.eclipse.archives.ui.wizards.pages;
  
  import org.eclipse.core.resources.IContainer;
  import org.eclipse.core.resources.IProject;
  import org.eclipse.core.resources.ResourcesPlugin;
  import org.eclipse.core.runtime.IPath;
  import org.eclipse.core.runtime.Path;
  import org.eclipse.jface.dialogs.Dialog;
  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.FormAttachment;
  import org.eclipse.swt.layout.FormData;
  import org.eclipse.swt.layout.FormLayout;
  import org.eclipse.swt.layout.GridData;
  import org.eclipse.swt.widgets.Button;
  import org.eclipse.swt.widgets.Composite;
  import org.eclipse.swt.widgets.Control;
  import org.eclipse.swt.widgets.DirectoryDialog;
  import org.eclipse.swt.widgets.Group;
  import org.eclipse.swt.widgets.Label;
  import org.eclipse.swt.widgets.Shell;
  import org.eclipse.swt.widgets.Text;
  import org.eclipse.ui.PlatformUI;
  import org.eclipse.ui.dialogs.ContainerSelectionDialog;
  import org.eclipse.ui.ide.IDE;
  import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
  import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
  import org.jboss.ide.eclipse.archives.core.model.PackagesCore;
  import org.jboss.ide.eclipse.archives.ui.PackagesSharedImages;
  import org.jboss.ide.eclipse.archives.ui.PackagesUIMessages;
  import org.jboss.ide.eclipse.archives.ui.util.FilesetPreviewComposite;
  import org.jboss.ide.eclipse.archives.ui.util.PackageNodeDestinationComposite;
  
  public class FilesetInfoWizardPage extends WizardPage {
  
  	private IArchiveFileSet fileset;
  	private IArchiveNode parentNode;
  	private Text includesText;
  	private Text excludesText;
  	private PackageNodeDestinationComposite destinationComposite;
  
  	private String includes, excludes;
  	private IPath rootDir;
  	private boolean rootDirIsWorkspaceRelative, fileIsWorkspaceRelative;
  	private FilesetPreviewComposite previewComposite;
  
  	private Composite mainComposite;
  	private Text rootDirText;
  	private Label rootProjectLabel;
  	private Button rootDirWorkspaceBrowseButton;
  	private Button rootDirFilesystemBrowseButton;
  
  	public FilesetInfoWizardPage (Shell parent, IArchiveFileSet fileset, IArchiveNode parentNode) {
  		super(PackagesUIMessages.FilesetInfoWizardPage_new_title, PackagesUIMessages.FilesetInfoWizardPage_new_title, null);
  		
  		if (fileset == null) {
  			setTitle(PackagesUIMessages.FilesetInfoWizardPage_new_title);
  			setMessage(PackagesUIMessages.FilesetInfoWizardPage_new_message);
  		} else {
  			setTitle(PackagesUIMessages.FilesetInfoWizardPage_edit_title);
  			setMessage(PackagesUIMessages.FilesetInfoWizardPage_edit_message);
  		}
  		
  		this.fileset = fileset;
  		this.parentNode = parentNode;
  	}
  		
  	public void createControl (Composite parent) {
  		mainComposite = new Composite(parent, SWT.NONE);
  		mainComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
  		
  		mainComposite.setLayout(new FormLayout());
  		Group info = createInfoGroup(mainComposite);
  		createPreviewGroup(mainComposite, info);
  		
  		fillDefaults();
  		addListeners();
  		changePreview();
  		
  		includesText.setFocus();
  		
  		setControl(mainComposite);
  	}
  	
  	private FormData createFormData(Object topStart, int topOffset, Object bottomStart, int bottomOffset, 
  			Object leftStart, int leftOffset, Object rightStart, int rightOffset) {
  		FormData data = new FormData();
  
  		if( topStart != null ) {
  			data.top = topStart instanceof Control ? new FormAttachment((Control)topStart, topOffset) : 
  				new FormAttachment(((Integer)topStart).intValue(), topOffset);
  		}
  
  		if( bottomStart != null ) {
  			data.bottom = bottomStart instanceof Control ? new FormAttachment((Control)bottomStart, bottomOffset) : 
  				new FormAttachment(((Integer)bottomStart).intValue(), bottomOffset);
  		}
  
  		if( leftStart != null ) {
  			data.left = leftStart instanceof Control ? new FormAttachment((Control)leftStart, leftOffset) : 
  				new FormAttachment(((Integer)leftStart).intValue(), leftOffset);
  		}
  
  		if( rightStart != null ) {
  			data.right = rightStart instanceof Control ? new FormAttachment((Control)rightStart, rightOffset) : 
  				new FormAttachment(((Integer)rightStart).intValue(), rightOffset);
  		}
  
  		return data;
  	}
  
  	
  	private Group createPreviewGroup(Composite mainComposite, Group info) {
  		Group previewGroup = new Group(mainComposite, SWT.NONE);
  		previewGroup.setLayoutData(createFormData(info,5,100,-5,0,5,100,-5));
  		previewGroup.setLayout(new FormLayout());
  		previewComposite = new FilesetPreviewComposite(previewGroup, SWT.NONE);
  		previewComposite.setLayoutData(createFormData(0,0,100,0,0,0,100,0));
  		previewGroup.setText(PackagesUIMessages.FilesetInfoWizardPage_previewGroup_label);
  		return previewGroup;
  	}
  	private Group createInfoGroup(Composite mainComposite) {
  		Group infoGroup = new Group(mainComposite, SWT.NONE);
  		infoGroup.setText(PackagesUIMessages.FilesetInfoWizardPage_infoGroup_title);
  
  		// positioning in parent
  		infoGroup.setLayoutData(createFormData(0,5,null,0,0,5,100,-5));
  
  		// my layout
  		infoGroup.setLayout(new FormLayout());
  
  		
  		int max = 100;
  
  		// destination row
  		Label destinationKey = new Label(infoGroup, SWT.NONE);
  		destinationComposite = new PackageNodeDestinationComposite(infoGroup, SWT.NONE, parentNode);
  
  		destinationKey.setLayoutData(createFormData(0,10,null,0,null,5, 0, max));
  		destinationComposite.setLayoutData(createFormData(0,5,null,0,destinationKey,5, 100, -5));
  		
  		
  		// root project row
  		Label rootProjectKey = new Label(infoGroup, SWT.NONE);
  		Composite rootProjectVal = new Composite(infoGroup, SWT.NONE);
  		rootProjectVal.setLayout(new FormLayout());
  		Label projectImageLabel = new Label(rootProjectVal, SWT.NONE);
  		rootProjectLabel = new Label(rootProjectVal, SWT.NONE);
  		
  		projectImageLabel.setLayoutData(createFormData(0,0,null,0,0,5, null,0));
  		rootProjectLabel.setLayoutData(createFormData(0,0,null,0,projectImageLabel, 5, 100,-5));
  		rootProjectKey.setLayoutData(createFormData(destinationComposite,5,null,0,null,5,0,max));
  		rootProjectVal.setLayoutData(createFormData(destinationComposite,5, null, 0, destinationKey, 5, 100, -5));
  		
  
  		// root dir
  		Label rootDirectoryLabel = new Label(infoGroup, SWT.NONE);
  		Composite rootDirValue = new Composite(infoGroup, SWT.NONE);
  		rootDirValue.setLayout(new FormLayout());
  		
  		rootDirText = new Text(rootDirValue, SWT.BORDER);
  		rootDirWorkspaceBrowseButton = new Button(rootDirValue, SWT.PUSH);
  		rootDirFilesystemBrowseButton = new Button(rootDirValue, SWT.PUSH);
  		
  		rootDirText.setLayoutData(createFormData(0,5,null,0,0,5,100,-5));
  		rootDirFilesystemBrowseButton.setLayoutData(createFormData(rootDirText,5,null,0,null,0,100,-5));
  		rootDirWorkspaceBrowseButton.setLayoutData(createFormData(rootDirText,5,null,0,null,0,rootDirFilesystemBrowseButton, -5));
  		
  		rootDirectoryLabel.setLayoutData(createFormData(rootProjectVal,10,null,0,null,5,0,max));
  		rootDirValue.setLayoutData(createFormData(rootProjectVal,5,null,0,rootDirectoryLabel,5,100,-5));
  		
  
  		// includes composite and it's internals
  		Composite includesKey = new Composite(infoGroup, SWT.NONE);
  		includesKey.setLayout(new FormLayout());
  		Label includesImage = new Label(includesKey, SWT.NONE);
  		Label includesTextLabel = new Label(includesKey, SWT.NONE);
  		includesText = new Text(infoGroup, SWT.BORDER);
  		includesImage.setLayoutData(createFormData(0,0,null,0,0,0,null,0));
  		includesTextLabel.setLayoutData(createFormData(0,0,null,0,includesImage,5,null,0));
  		
  		includesKey.setLayoutData(createFormData(rootDirValue,5,null,0,null,5,0,max));
  		includesText.setLayoutData(createFormData(rootDirValue,5,null,0,includesKey,10,100,-5));
  
  		
  		// excludes composite and it's internals
  		Composite excludesKey = new Composite(infoGroup, SWT.NONE);
  		excludesKey.setLayout(new FormLayout());
  		Label excludesImage = new Label(excludesKey, SWT.NONE);
  		Label excludesTextLabel = new Label(excludesKey, SWT.NONE);
  		excludesText = new Text(infoGroup, SWT.BORDER);
  		excludesImage.setLayoutData(createFormData(0,0,null,0,0,0,null,0));
  		excludesTextLabel.setLayoutData(createFormData(0,0,null,0,excludesImage,5,null,0));
  		
  		excludesKey.setLayoutData(createFormData(includesText,5,null,0,null,5,0,max));
  		excludesText.setLayoutData(createFormData(includesText,5,null,0,excludesKey,10,100,-5));
  
  		
  		
  		
  		
  		
  		// customize widgets
  		destinationKey.setText(PackagesUIMessages.FilesetInfoWizardPage_destination_label);
  		rootProjectKey.setText(PackagesUIMessages.FilesetInfoWizardPage_rootProject_label);
  		projectImageLabel.setImage(
  				PlatformUI.getWorkbench().getSharedImages().getImage(IDE.SharedImages.IMG_OBJ_PROJECT));
  		rootDirectoryLabel.setText(PackagesUIMessages.FilesetInfoWizardPage_rootDirectory_label);
  		rootDirWorkspaceBrowseButton.setText(PackagesUIMessages.FilesetInfoWizardPage_rootDirWorkspaceBrowseButton_label);
  		rootDirFilesystemBrowseButton.setText(PackagesUIMessages.FilesetInfoWizardPage_rootDirFilesystemBrowseButton_label);
  		includesImage.setImage(PackagesSharedImages.getImage(PackagesSharedImages.IMG_INCLUDES));
  		includesTextLabel.setText(PackagesUIMessages.FilesetInfoWizardPage_includes_label);
  		excludesImage.setImage(PackagesSharedImages.getImage(PackagesSharedImages.IMG_EXCLUDES));
  		excludesTextLabel.setText(PackagesUIMessages.FilesetInfoWizardPage_excludes_label);
  		rootDirText.setEnabled(false);
  
  		return infoGroup;
  	}
  	
  	
  	private void addListeners ()
  	{
  		includesText.addModifyListener(new ModifyListener () { 
  			public void modifyText(ModifyEvent e) {
  				includes = includesText.getText();
  				changePreview();
  			}
  		});
  		
  		excludesText.addModifyListener(new ModifyListener () { 
  			public void modifyText(ModifyEvent e) {
  				excludes = excludesText.getText();
  				changePreview();
  			}
  		});
  		
  		
  		rootDirWorkspaceBrowseButton.addSelectionListener(new SelectionAdapter () {
  			public void widgetSelected(SelectionEvent e) {
  				browseWorkspaceForRootDir();
  			}
  		});
  		
  		rootDirFilesystemBrowseButton.addSelectionListener(new SelectionAdapter () {
  			public void widgetSelected(SelectionEvent e) {
  				browseFilesystemForRootDir();
  			}
  		});
  			
  	}
  	
  	public IArchiveNode getRootNode () {
  		return (IArchiveNode) destinationComposite.getPackageNodeDestination();
  	}
  	
  	public String getIncludes () {
  		return includes;
  	}
  	
  	public String getExcludes () {
  		return excludes;
  	}
  	
  	public String getRootDir () {
  		return rootDir.toOSString();
  	}
  		
  	public boolean isRootDirWorkspaceRelative () {
  		return rootDirIsWorkspaceRelative;
  	}
  	
  	public boolean isFileWorkspaceRelative () {
  		return fileIsWorkspaceRelative;
  	}
  		
  	private void fillDefaults () {
  		if (fileset != null) {
  				if (fileset.getIncludesPattern() != null)
  					includesText.setText(fileset.getIncludesPattern());
  				if (fileset.getExcludesPattern() != null)
  					excludesText.setText(fileset.getExcludesPattern());
  				
  				if (fileset.getGlobalSourcePath() != null) {
  					rootDir = fileset.getGlobalSourcePath();
  					rootDirText.setText(rootDir.toString());
  					rootDirIsWorkspaceRelative = fileset.isInWorkspace();
  				}
  		} else {
  			rootProjectLabel.setText(parentNode.getProject().getName());
  			fileIsWorkspaceRelative = true;
  			rootDirIsWorkspaceRelative = true;
  			rootDir = ResourcesPlugin.getWorkspace().getRoot().getProject(parentNode.getProject().getName()).getFullPath();
  		}
  	}
  	
  	private void changePreview() {
  		IPath root = isRootDirWorkspaceRelative() ? ResourcesPlugin.getWorkspace().getRoot().getLocation().append(rootDir) : rootDir;
  		IPath paths[] = PackagesCore.findMatchingPaths(root, includesText.getText(), excludesText.getText());
  		previewComposite.setInput(paths);
  	}
  	
  	
  	private void browseWorkspaceForRootDir () {
  		IContainer workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
  		ContainerSelectionDialog dialog = new ContainerSelectionDialog(getShell(), workspaceRoot, true,
  			PackagesUIMessages.FilesetInfoWizardPage_rootDirWorkspaceBrowser_message);
  		
  		int response = dialog.open();
  		if (response == Dialog.OK) {
  			Object results[] = dialog.getResult();
  			IPath path = (IPath) results[0];
  			String projectName = path.segment(0);
  			
  			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
  			if (project != null) {
  				IPath relativePath = path.removeFirstSegments(1);
  				rootProjectLabel.setText(project.getName());
  				
  				rootDir = path;
  				if (!relativePath.isEmpty()) {
  					rootDirText.setText(relativePath.toString());
  				} else {
  					rootDirText.setText("");
  				}
  				
  				rootDirIsWorkspaceRelative = true;
  				changePreview();
  			}
  		}
  	}
  	
  	private void browseFilesystemForRootDir () {
  		DirectoryDialog dialog = new DirectoryDialog(getShell());
  		if (rootDirText.getText() != null && rootDirText.getText().length() > 0 && !isRootDirWorkspaceRelative()) {
  			dialog.setFilterPath(rootDirText.getText());
  		}
  		
  		String path = dialog.open();
  		if (path != null && path.length() > 0) {
  			rootDirText.setText(path);
  			rootDir = new Path(path);
  			rootDirIsWorkspaceRelative = false;
  			rootProjectLabel.setText(PackagesUIMessages.FilesetInfoWizardPage_noProjectMessage);
  			changePreview();
  		}
  	}
  	
  }
  
  
  
  1.1      date: 2007/04/18 16:52:15;  author: rawb;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/PackageInfoWizardPage.java
  
  Index: PackageInfoWizardPage.java
  ===================================================================
  package org.jboss.ide.eclipse.archives.ui.wizards.pages;
  
  import org.eclipse.core.resources.IContainer;
  import org.eclipse.core.resources.IProject;
  import org.eclipse.core.runtime.IPath;
  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.Control;
  import org.eclipse.swt.widgets.Group;
  import org.eclipse.swt.widgets.Label;
  import org.eclipse.swt.widgets.Text;
  import org.jboss.ide.eclipse.archives.core.Trace;
  import org.jboss.ide.eclipse.archives.core.model.IArchive;
  import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
  import org.jboss.ide.eclipse.archives.core.model.internal.ArchivesModel;
  import org.jboss.ide.eclipse.archives.ui.PackageNodeFactory;
  import org.jboss.ide.eclipse.archives.ui.PackagesSharedImages;
  import org.jboss.ide.eclipse.archives.ui.PackagesUIMessages;
  import org.jboss.ide.eclipse.archives.ui.util.DestinationChangeListener;
  import org.jboss.ide.eclipse.archives.ui.util.PackageDestinationComposite;
  import org.jboss.ide.eclipse.archives.ui.wizards.AbstractPackageWizard;
  import org.jboss.ide.eclipse.archives.ui.wizards.WizardPageWithNotification;
  import org.jboss.ide.eclipse.archives.ui.wizards.WizardWithNotification;
  
  public class PackageInfoWizardPage extends WizardPageWithNotification {
  
  	private AbstractPackageWizard wizard;
  	private Text packageNameText;
  	private Button compressedButton;
  	private Button explodedButton;
  	private String packageName;
  	private boolean packageExploded;
  	private PackageDestinationComposite destinationComposite;
  	private IArchive pkg;
  	
  	public PackageInfoWizardPage (AbstractPackageWizard wizard, IArchive existingPackage) {
  		super (PackagesUIMessages.PackageInfoWizardPage_title, PackagesUIMessages.PackageInfoWizardPage_title, wizard.getImageDescriptor());
  		setWizard(wizard);
  		this.pkg = existingPackage;
  	}
  	
  	public void createControl(Composite parent) {
  		setMessage(PackagesUIMessages.PackageInfoWizardPage_message);		
  		
  		Composite main = new Composite(parent, SWT.NONE);
  		main.setLayout(new GridLayout(1, false));
  		
  		Group infoGroup = new Group(main, SWT.NONE);
  		infoGroup.setLayout(new GridLayout(3, false));
  		infoGroup.setText(PackagesUIMessages.PackageInfoWizardPage_infoGroup_label);
  		expand(infoGroup);
  		
  		new Label(infoGroup, SWT.NONE).setText(PackagesUIMessages.PackageInfoWizardPage_packageName_label);
  		Composite pkgNameComposite = new Composite(infoGroup, SWT.NONE);
  		GridLayout pkgNameLayout = new GridLayout(2, false);
  		pkgNameLayout.marginHeight = 0;
  		pkgNameLayout.marginWidth = 0;
  		pkgNameComposite.setLayout(pkgNameLayout);
  		pkgNameComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  		
  		new Label(pkgNameComposite, SWT.NONE).setImage(PackagesSharedImages.getImage(PackagesSharedImages.IMG_PACKAGE));
  		
  		packageNameText = new Text(pkgNameComposite, SWT.BORDER);
  		System.out.println(wizard.getProject());
  		packageName = wizard.getProject().getName();
  		packageName += "." + wizard.getPackageExtension();
  		packageNameText.setText(packageName);
  		packageNameText.setSelection(0, wizard.getProject().getName().length());
  		expand(packageNameText);
  		
  		GridData pkgNameData = new GridData(GridData.FILL_HORIZONTAL);
  		pkgNameData.horizontalSpan = 2;
  		pkgNameComposite.setLayoutData(pkgNameData);
  		
  		packageNameText.addModifyListener(new ModifyListener() {
  			public void modifyText(ModifyEvent e) {
  				if (validate())
  				{
  					packageName = packageNameText.getText();
  				}
  			}
  		});
  
  		new Label(infoGroup, SWT.NONE).setText(PackagesUIMessages.PackageInfoWizardPage_destination_label);
  
  		GridData destinationTextData = new GridData(GridData.FILL_BOTH);
  		destinationTextData.horizontalSpan = 2;
  		GridData buttonData = new GridData(GridData.FILL_HORIZONTAL);
  		buttonData.horizontalSpan = 3;
  		buttonData.horizontalAlignment = SWT.END;
  		
  		Object destination = wizard.getSelectedDestination();
  		destinationComposite = new PackageDestinationComposite(
  			infoGroup, SWT.NONE, destination);
  		destinationComposite.addDestinationChangeListener(new DestinationChangeListener () {
  			public void destinationChanged(Object newDestination) {
  				validate();
  			}
  		});
  		destinationComposite.setLayoutData(destinationTextData);
  		
  		Group packageTypeGroup = new Group(main, SWT.NONE);
  		packageTypeGroup.setLayout(new GridLayout(1, false));
  		packageTypeGroup.setText(PackagesUIMessages.PackageInfoWizardPage_packageTypeGroup_label);
  		expand(packageTypeGroup);
  		
  		packageExploded = false;
  		compressedButton = new Button(packageTypeGroup, SWT.RADIO);
  		compressedButton.setText(PackagesUIMessages.PackageInfoWizardPage_compressedButton_label);
  		compressedButton.addSelectionListener(new SelectionAdapter() {
  			public void widgetSelected(SelectionEvent e) {
  				packageExploded = false;
  			}
  		});
  		compressedButton.setSelection(true);
  		explodedButton = new Button(packageTypeGroup, SWT.RADIO);
  		explodedButton.addSelectionListener(new SelectionAdapter () {
  			public void widgetSelected(SelectionEvent e) {
  				packageExploded = true;
  			}
  		});
  		explodedButton.setText(PackagesUIMessages.PackageInfoWizardPage_explodedButton_label);
  		setControl(main);
  		
  		fillDefaults();
  		validate();
  	}
  	
  	private void fillDefaults ()
  	{
  		if (pkg != null)
  		{
  			compressedButton.setSelection(!pkg.isExploded());
  			explodedButton.setSelection(pkg.isExploded());
  			packageNameText.setText(pkg.getName());
  			packageName = pkg.getName();
  			
  			if (pkg.isTopLevel()) {
  				
  				// TODO:  FIX THIS
  				destinationComposite.setPackageNodeDestination(pkg.getDestinationPath());
  			} else {
  				destinationComposite.setPackageNodeDestination(pkg.getParent());
  			}
  			
  			if (pkg.isExploded())
  			{
  				explodedButton.setEnabled(true);
  			} else {
  				compressedButton.setEnabled(true);
  			}
  		}
  	}
  
  	private boolean validate ()
  	{
  		if (packageNameText.getText() == null || packageNameText.getText().length() == 0)
  		{
  			setErrorMessage(PackagesUIMessages.PackageInfoWizardPage_error_noPackageName);
  			setPageComplete(false);
  			return false;
  		}
  		else {
  			setErrorMessage(null);
  		}
  		
  		Object destination = getPackageDestination();
  		if (destination instanceof IArchiveNode)
  		{
  			IArchiveNode parentNode = (IArchiveNode) destination;
  			
  			// verify no child has the same name
  			IArchiveNode subPackages[] = parentNode.getChildren(IArchiveNode.TYPE_ARCHIVE);
  			for (int i = 0; i < subPackages.length; i++)
  			{
  				IArchive subPackage = (IArchive) subPackages[i];
  				if (subPackage.getName().equals(packageNameText.getText())
  					&& (!pkg.equals(this.pkg)))
  				{
  					setErrorMessage(
  						PackagesUIMessages.bind(
  							PackagesUIMessages.PackageInfoWizardPage_error_packageAlreadyExists, packageNameText.getText()));
  					setPageComplete(false);
  					return false;
  				}
  			}
  		} else if (destination instanceof IContainer) {
  			IContainer container = (IContainer) destination;
  			IArchive[] packages = ArchivesModel.instance().getProjectArchives(wizard.getProject());
  			if (packages != null) {
  				for( int i = 0; i < packages.length; i++ ) {
  					IArchive pkg = (IArchive) packages[i];
  					if (pkg.getName().equals(packageNameText.getText())
  						&& (pkg.getDestinationPath() != null && pkg.getDestinationPath().equals(container.getFullPath()))
  						&& (!pkg.equals(this.pkg)))
  					{
  						setErrorMessage(
  								PackagesUIMessages.bind(
  									PackagesUIMessages.PackageInfoWizardPage_error_packageAlreadyExists, packageNameText.getText()));
  							setPageComplete(false);
  							return false;
  					}
  				}
  			}
  		} else if (destination instanceof IPath) {
  			IPath path = (IPath) destination;
  			IArchive[] packages = ArchivesModel.instance().getProjectArchives(wizard.getProject());
  			if (packages != null) {
  				for( int i = 0; i < packages.length; i++ ) {
  					IArchive pkg = (IArchive) packages[i];
  					if (pkg.getName().equals(packageNameText.getText())
  						&& (pkg.getDestinationPath() != null && pkg.getDestinationPath().equals(path))
  						&& (!pkg.equals(this.pkg)))
  					{
  						setErrorMessage(
  								PackagesUIMessages.bind(
  									PackagesUIMessages.PackageInfoWizardPage_error_packageAlreadyExists, packageNameText.getText()));
  							setPageComplete(false);
  							return false;
  					}
  				}
  			} else if (destination == null) {
  				setErrorMessage(PackagesUIMessages.PackageInfoWizardPage_error_noDestination);
  				setPageComplete(false);
  				return false;
  			}
  		}
  		
  		setPageComplete(true);
  		return true;
  	}
  	
  	
  	public void pageExited(int button) {
  		Trace.trace(getClass(), "pageExited");
  		if (button == WizardWithNotification.NEXT || button == WizardWithNotification.FINISH)
  		{
  			createPackage();
  		}
  	}
  	
  	private void createPackage () {
  		Trace.trace(getClass(), "creating package");
  		Object destContainer = getPackageDestination();
  		
  		IProject project = null;
  		if (destContainer instanceof IArchiveNode) {
  			project = ((IArchiveNode)destContainer).getProject();
  		} else if (destContainer instanceof IContainer) {
  			project = ((IContainer)destContainer).getProject();
  		} else {
  			project = wizard.getProject();
  		}
  		
  		if (pkg == null) {
  			pkg = PackageNodeFactory.createPackage();
  		}
  		
  		pkg.setName(getPackageName());
  		pkg.setExploded(isPackageExploded());
  		
  		if (destContainer instanceof IContainer) {
  			pkg.setDestinationPath(((IContainer)destContainer).getFullPath() , true);
  		} else if (destContainer instanceof IPath) {
  			pkg.setDestinationPath((IPath) destContainer, false);
  		}
  	}
  	
  	private void expand(Control control)
  	{
  		control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  	}
  
  	public String getPackageName() {
  		return packageName;
  	}
  
  	public boolean isPackageExploded() {
  		return packageExploded;
  	}
  
  	public Object getPackageDestination() {
  		return destinationComposite.getPackageNodeDestination();
  	}
  	
  	private void setWizard(AbstractPackageWizard wizard)
  	{
  		this.wizard = wizard;
  	}
  	
  	public IArchive getPackage ()
  	{
  		return pkg;
  	}
  }
  
  
  
  1.1      date: 2007/04/18 16:52:15;  author: rawb;  state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.packages.ui/src/main/org/jboss/ide/eclipse/archives/ui/wizards/pages/DefaultJARConfigWizardPage.java
  
  Index: DefaultJARConfigWizardPage.java
  ===================================================================
  package org.jboss.ide.eclipse.archives.ui.wizards.pages;
  
  import org.eclipse.jface.viewers.TreeViewer;
  import org.eclipse.swt.SWT;
  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.jboss.ide.eclipse.archives.ui.PackagesSharedImages;
  import org.jboss.ide.eclipse.archives.ui.providers.PackagesContentProvider;
  import org.jboss.ide.eclipse.archives.ui.providers.PackagesLabelProvider;
  import org.jboss.ide.eclipse.archives.ui.wizards.AbstractPackageWizard;
  import org.jboss.ide.eclipse.archives.ui.wizards.WizardPageWithNotification;
  
  public class DefaultJARConfigWizardPage extends WizardPageWithNotification {
  
  	private AbstractPackageWizard wizard;
  	
  	public DefaultJARConfigWizardPage (AbstractPackageWizard wizard) {
  		super ("Default JAR Configuration", "Default JAR Configuration",
  				PackagesSharedImages.getImageDescriptor(PackagesSharedImages.IMG_NEW_JAR_WIZARD));
  		
  		this.wizard = wizard;
  	}
  	
  	public void createControl(Composite parent) {
  
  		Composite main = new Composite(parent, SWT.NONE);
  		main.setLayout(new GridLayout(1, false));
  		
  		Button createDefaultConfig = new Button(main, SWT.CHECK);
  		createDefaultConfig.setText("Use default JAR configuration");
  		
  		new Label(main, SWT.NONE).setText("Preview");
  		
  		TreeViewer previewTree = new TreeViewer(main);
  		previewTree.setContentProvider(new PackagesContentProvider());
  		previewTree.setLabelProvider(new PackagesLabelProvider());
  		previewTree.setInput(wizard.getPackage());
  		
  		setControl(main);
  	}
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list