From: Jan P. <jp...@us...> - 2006-06-01 08:02:23
|
Update of /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/ui In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv18680/src/org/epic/debug/ui Modified Files: LaunchConfigurationRemoteMainTab.java CGILaunchConfigurationMainTab.java LaunchConfigurationMainTab.java Log Message: Improved project and file selectors in launch configuration dialogs. (Contributed by Katrin Dust) Index: LaunchConfigurationRemoteMainTab.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/ui/LaunchConfigurationRemoteMainTab.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- LaunchConfigurationRemoteMainTab.java 7 Mar 2006 19:41:29 -0000 1.1 +++ LaunchConfigurationRemoteMainTab.java 1 Jun 2006 08:02:19 -0000 1.2 @@ -38,6 +38,7 @@ import org.eclipse.jface.preference.FileFieldEditor; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.jface.util.PropertyChangeEvent; +import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; @@ -53,6 +54,7 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IEditorDescriptor; +import org.eclipse.ui.plugin.AbstractUIPlugin; import org.epic.debug.*; import org.epic.debug.util.RemotePort; @@ -72,17 +74,17 @@ */ // Project UI widgets - protected Label fProjLabel; + //protected Label fProjLabel; protected Label fHostLabel; protected Label fPortLabel; - protected Combo fProjText; - protected Button fProjButton; + //protected Text fProjText; + //protected Button fProjButton; protected Text fHostText; protected Text fPortText; // Main class UI widgets - protected Label fMainLabel; - protected Combo fFileText; + //protected Label fMainLabel; + //protected Text fFileText; // protected Button fSearchButton; // protected Button fSearchExternalJarsCheckButton; // protected Button fStopInMainCheckButton; @@ -98,7 +100,10 @@ private Label fCheckLabel; private Button fCheckBox; Composite mDebugPackageComp; + + private ProjectAndFileBlock fProjectAndFileBlock = new ProjectAndFileBlock();; + /** * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(Composite) */ @@ -107,78 +112,77 @@ Composite comp = new Composite(parent, SWT.NONE); setControl(comp); - GridLayout topLayout = new GridLayout(); comp.setLayout(topLayout); GridData gd; +// +// createVerticalSpacer(comp, 1); +// +// Composite projComp = new Composite(comp, SWT.NONE); +// GridLayout projLayout = new GridLayout(); +// projLayout.numColumns = 3; +// projLayout.marginHeight = 0; +// projLayout.marginWidth = 0; +// projLayout.makeColumnsEqualWidth = true; +// projComp.setLayout(projLayout); +// gd = new GridData(GridData.FILL_HORIZONTAL); +// projComp.setLayoutData(gd); +// projComp.setFont(font); +// +// fProjLabel = new Label(projComp, SWT.NONE); +// fProjLabel.setText("&Project:"); //$NON-NLS-1$ +// gd = new GridData(); +// gd.horizontalSpan = 1; +// fProjLabel.setLayoutData(gd); +// fProjLabel.setFont(font); +// +// //fParamText = new Text(projComp, SWT.SINGLE | SWT.BORDER); +// fProjText = new Text(projComp, SWT.SINGLE | SWT.BORDER ); +// gd = new GridData(GridData.FILL_HORIZONTAL); +// gd.horizontalSpan = 2; +// fProjText.setLayoutData(gd); +// fProjText.setFont(font); +// fProjText.addModifyListener(new ModifyListener() { +// public void modifyText(ModifyEvent evt) { +// updateLaunchConfigurationDialog(); +// } +// }); +// +// createVerticalSpacer(comp, 1); +// +// Composite mainComp = new Composite(comp, SWT.NONE); +// GridLayout mainLayout = new GridLayout(); +// mainLayout.numColumns = 3; +// mainLayout.marginHeight = 0; +// mainLayout.marginWidth = 0; +// mainLayout.makeColumnsEqualWidth = true; +// mainComp.setLayout(mainLayout); +// gd = new GridData(GridData.FILL_HORIZONTAL); +// mainComp.setLayoutData(gd); +// mainComp.setFont(font); +// +// fMainLabel = new Label(mainComp, SWT.NONE); +// fMainLabel.setText("File to execute:"); //$NON-NLS-1$ +// gd = new GridData(); +// gd.horizontalSpan = 1; +// fMainLabel.setLayoutData(gd); +// fMainLabel.setFont(font); +// +// //fMainText = new Text(mainComp, SWT.SINGLE | SWT.BORDER); +// fFileText = new Text(mainComp, SWT.SINGLE | SWT.BORDER); +// gd = new GridData(GridData.FILL_HORIZONTAL); +// gd.horizontalSpan = 2; +// fFileText.setLayoutData(gd); +// fFileText.setFont(font); +// fFileText.addModifyListener(new ModifyListener() { +// public void modifyText(ModifyEvent evt) { +// updateLaunchConfigurationDialog(); +// } +// }); - createVerticalSpacer(comp, 1); - - Composite projComp = new Composite(comp, SWT.NONE); - GridLayout projLayout = new GridLayout(); - projLayout.numColumns = 3; - projLayout.marginHeight = 0; - projLayout.marginWidth = 0; - projLayout.makeColumnsEqualWidth = true; - projComp.setLayout(projLayout); - gd = new GridData(GridData.FILL_HORIZONTAL); - projComp.setLayoutData(gd); - projComp.setFont(font); - - fProjLabel = new Label(projComp, SWT.NONE); - fProjLabel.setText("&Project:"); //$NON-NLS-1$ - gd = new GridData(); - gd.horizontalSpan = 1; - fProjLabel.setLayoutData(gd); - fProjLabel.setFont(font); - - //fParamText = new Text(projComp, SWT.SINGLE | SWT.BORDER); - fProjText = new Combo(projComp, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); - gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalSpan = 2; - fProjText.setLayoutData(gd); - fProjText.setFont(font); - fProjText.setItems(getPerlProjects()); - fProjText.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent evt) { - updateLaunchConfigurationDialog(); - fFileText.setItems(getPerlFiles()); - } - }); - - createVerticalSpacer(comp, 1); - - Composite mainComp = new Composite(comp, SWT.NONE); - GridLayout mainLayout = new GridLayout(); - mainLayout.numColumns = 3; - mainLayout.marginHeight = 0; - mainLayout.marginWidth = 0; - mainLayout.makeColumnsEqualWidth = true; - mainComp.setLayout(mainLayout); - gd = new GridData(GridData.FILL_HORIZONTAL); - mainComp.setLayoutData(gd); - mainComp.setFont(font); - - fMainLabel = new Label(mainComp, SWT.NONE); - fMainLabel.setText("File to execute"); //$NON-NLS-1$ - gd = new GridData(); - gd.horizontalSpan = 1; - fMainLabel.setLayoutData(gd); - fMainLabel.setFont(font); - - //fMainText = new Text(mainComp, SWT.SINGLE | SWT.BORDER); - fFileText = new Combo(mainComp, SWT.READ_ONLY | SWT.SINGLE | SWT.BORDER); - gd = new GridData(GridData.FILL_HORIZONTAL); - gd.horizontalSpan = 2; - fFileText.setLayoutData(gd); - fFileText.setFont(font); - fFileText.addModifyListener(new ModifyListener() { - public void modifyText(ModifyEvent evt) { - updateLaunchConfigurationDialog(); - } - }); - - createVerticalSpacer(comp, 1); + fProjectAndFileBlock.createControl(comp); + + createVerticalSpacer(comp, 2); Composite hostComp = new Composite(comp, SWT.NONE); GridLayout hostLayout = new GridLayout(); hostLayout.numColumns = 3; @@ -343,8 +347,8 @@ * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(ILaunchConfiguration) */ public void initializeFrom(ILaunchConfiguration config) { - updateProjectFromConfig(config); - updateFileFromConfig(config); + + fProjectAndFileBlock.initializeFrom(config); updateParamsFromConfig(config); updateDebugPackageFromConfig(config); @@ -380,17 +384,17 @@ calculatePackageFilePathEnabled(); } - protected void updateProjectFromConfig(ILaunchConfiguration config) { - String projectName = ""; //$NON-NLS-1$ - try { - projectName = config.getAttribute( - PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, - EMPTY_STRING); - } catch (CoreException ce) { - PerlDebugPlugin.log(ce); - } - fProjText.setText(projectName); - } +// protected void updateProjectFromConfig(ILaunchConfiguration config) { +// String projectName = ""; //$NON-NLS-1$ +// try { +// projectName = config.getAttribute( +// PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, +// EMPTY_STRING); +// } catch (CoreException ce) { +// PerlDebugPlugin.log(ce); +// } +// fProjText.setText(projectName); +// } protected void updateDebugPackageFromConfig(ILaunchConfiguration config) { String path = ""; //$NON-NLS-1$ @@ -425,26 +429,23 @@ fHostText.setText(params); } - protected void updateFileFromConfig(ILaunchConfiguration config) { - String fileName = ""; //$NON-NLS-1$ - try { - fileName = config.getAttribute( - PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, - EMPTY_STRING); - } catch (CoreException ce) { - PerlDebugPlugin.log(ce); - } - fFileText.setText(fileName); - } +// protected void updateFileFromConfig(ILaunchConfiguration config) { +// String fileName = ""; //$NON-NLS-1$ +// try { +// fileName = config.getAttribute( +// PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, +// EMPTY_STRING); +// } catch (CoreException ce) { +// PerlDebugPlugin.log(ce); +// } +// fFileText.setText(fileName); +// } /** * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(ILaunchConfigurationWorkingCopy) */ public void performApply(ILaunchConfigurationWorkingCopy config) { - config.setAttribute(PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, - (String) fProjText.getText()); - config.setAttribute(PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, - (String) fFileText.getText()); + fProjectAndFileBlock.performApply(config); config.setAttribute(PerlLaunchConfigurationConstants.ATTR_REMOTE_HOST, (String) fHostText.getText()); config.setAttribute(PerlLaunchConfigurationConstants.ATTR_REMOTE_DEST, @@ -482,25 +483,10 @@ setErrorMessage(null); setMessage(null); - String name = fProjText.getText().trim(); - if (name.length() > 0) { - if (!ResourcesPlugin.getWorkspace().getRoot().getProject(name) - .exists()) { - setErrorMessage("Project does not exist"); //$NON-NLS-1$ - return false; - } - } else { - setErrorMessage("Specify Project"); //$NON-NLS-1$ - return false; - } - - name = fFileText.getText().trim(); - if (name.length() == 0) { - setErrorMessage("Startup File is not specified"); //$NON-NLS-1$ + if(!fProjectAndFileBlock.isValid(config)){ return false; } - - name = fPortText.getText().trim(); + String name = fPortText.getText().trim(); int port = -1; try { @@ -555,13 +541,7 @@ // TODO Auto-generated catch block e1.printStackTrace(); } - config.setAttribute(PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, - ""); //$NON-NLS-1$ - // } - // initializeMainTypeAndName(javaElement, config); - - config.setAttribute(PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, - ""); + fProjectAndFileBlock.setDefaults(config); config.setAttribute( PerlLaunchConfigurationConstants.ATTR_PROGRAM_PARAMETERS, ""); config.setAttribute(PerlLaunchConfigurationConstants.ATTR_REMOTE_HOST, @@ -642,23 +622,23 @@ return (String[]) projectList.toArray(new String[projectList.size()]); } - private String[] getPerlFiles() { - String projectName = fProjText.getText(); - - if (projectName == null || projectName.length() == 0) { - return (new String[]{}); - } - - IWorkspaceRoot workspaceRoot = PerlDebugPlugin.getWorkspace().getRoot(); - IProject project = workspaceRoot.getProject(projectName); - IResourceVisitor visitor = new PerlProjectVisitor(); - try { - project.accept(visitor); - } catch (CoreException e) { - e.printStackTrace(); - } - return ((PerlProjectVisitor) visitor).getList(); - } +// private String[] getPerlFiles() { +// String projectName = fProjText.getText(); +// +// if (projectName == null || projectName.length() == 0) { +// return (new String[]{}); +// } +// +// IWorkspaceRoot workspaceRoot = PerlDebugPlugin.getWorkspace().getRoot(); +// IProject project = workspaceRoot.getProject(projectName); +// IResourceVisitor visitor = new PerlProjectVisitor(); +// try { +// project.accept(visitor); +// } catch (CoreException e) { +// e.printStackTrace(); +// } +// return ((PerlProjectVisitor) visitor).getList(); +// } /* * (non-Javadoc) Index: LaunchConfigurationMainTab.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/ui/LaunchConfigurationMainTab.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- LaunchConfigurationMainTab.java 7 Mar 2006 19:41:29 -0000 1.1 +++ LaunchConfigurationMainTab.java 1 Jun 2006 08:02:19 -0000 1.2 @@ -1,3 +1,4 @@ + /******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials @@ -19,12 +20,10 @@ //import java.lang.reflect.InvocationTargetException; -import java.util.ArrayList; -import java.util.List; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IResourceVisitor; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; @@ -39,15 +38,15 @@ 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.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IEditorDescriptor; -import org.epic.debug.*; +import org.epic.debug.PerlDebugPlugin; +import org.epic.debug.PerlLaunchConfigurationConstants; +import org.epic.debug.ProjectAndFileBlock; +import org.epic.debug.WorkingDirectoryBlock; -public class LaunchConfigurationMainTab extends AbstractLaunchConfigurationTab +public class LaunchConfigurationMainTab extends AbstractLaunchConfigurationTab implements ActionListener { /** @@ -60,28 +59,23 @@ */ // Project UI widgets - protected Label fProjLabel; protected Label fParamLabel; - protected Combo fProjText; - protected Button fProjButton; protected Text fParamText; // Main class UI widgets - protected Label fMainLabel; - protected Combo fMainText; protected WorkingDirectoryBlock fWorkingDirectoryBlock; + protected ProjectAndFileBlock fFileToExecuteBlock; // protected Button fSearchButton; // protected Button fSearchExternalJarsCheckButton; // protected Button fStopInMainCheckButton; protected static final String EMPTY_STRING = ""; //$NON-NLS-1$ - private static final String PERL_NATURE_ID = - "org.epic.perleditor.perlnature"; public LaunchConfigurationMainTab() { fWorkingDirectoryBlock = new WorkingDirectoryBlock(); + fFileToExecuteBlock = new ProjectAndFileBlock(); } /** @@ -99,81 +93,9 @@ GridData gd; createVerticalSpacer(comp, 1); - - Composite projComp = new Composite(comp, SWT.NONE); - GridLayout projLayout = new GridLayout(); - projLayout.numColumns = 2; - projLayout.marginHeight = 0; - projLayout.marginWidth = 0; - projComp.setLayout(projLayout); - gd = new GridData(GridData.FILL_HORIZONTAL); - projComp.setLayoutData(gd); - projComp.setFont(font); - - fProjLabel = new Label(projComp, SWT.NONE); - fProjLabel.setText("&Project:"); //$NON-NLS-1$ - gd = new GridData(); - gd.horizontalSpan = 2; - fProjLabel.setLayoutData(gd); - fProjLabel.setFont(font); - - //fParamText = new Text(projComp, SWT.SINGLE | SWT.BORDER); - fProjText = - new Combo(projComp, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); - gd = new GridData(GridData.FILL_HORIZONTAL); - fProjText.setLayoutData(gd); - fProjText.setFont(font); - fProjText.setItems(getPerlProjects()); - fProjText.addModifyListener(new ModifyListener() - { - public void modifyText(ModifyEvent evt) - { - updateLaunchConfigurationDialog(); - fMainText.setItems(getPerlFiles()); - } - }); - - //fProjButton = createPushButton(projComp, "Browse..."), null); //$NON-NLS-1$ - /*fProjButton.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent evt) { - handleProjectButtonSelected(); - } - }); - */ - - createVerticalSpacer(comp, 1); - - Composite mainComp = new Composite(comp, SWT.NONE); - GridLayout mainLayout = new GridLayout(); - mainLayout.numColumns = 2; - mainLayout.marginHeight = 0; - mainLayout.marginWidth = 0; - mainComp.setLayout(mainLayout); - gd = new GridData(GridData.FILL_HORIZONTAL); - mainComp.setLayoutData(gd); - mainComp.setFont(font); - - fMainLabel = new Label(mainComp, SWT.NONE); - fMainLabel.setText("File to execute:"); //$NON-NLS-1$ - gd = new GridData(); - gd.horizontalSpan = 2; - fMainLabel.setLayoutData(gd); - fMainLabel.setFont(font); - - //fMainText = new Text(mainComp, SWT.SINGLE | SWT.BORDER); - fMainText = - new Combo(mainComp, SWT.READ_ONLY | SWT.SINGLE | SWT.BORDER); - gd = new GridData(GridData.FILL_HORIZONTAL); - fMainText.setLayoutData(gd); - fMainText.setFont(font); - fMainText.addModifyListener(new ModifyListener() - { - public void modifyText(ModifyEvent evt) - { - updateLaunchConfigurationDialog(); - } - }); - + + fFileToExecuteBlock.createControl(comp); + createVerticalSpacer(comp, 2); Composite paramComp = new Composite(comp, SWT.NONE); GridLayout paramLayout = new GridLayout(); @@ -214,8 +136,9 @@ */ public void initializeFrom(ILaunchConfiguration config) { - updateProjectFromConfig(config); - updateMainTypeFromConfig(config); + + fFileToExecuteBlock.initializeFrom(config); + //updateMainTypeFromConfig(config); // String file = fMainText.getText(); // fMainText.setItems(getPerlFiles()); //fMainText.setText(file); @@ -223,21 +146,6 @@ fWorkingDirectoryBlock.initializeFrom(config); } - protected void updateProjectFromConfig(ILaunchConfiguration config) - { - String projectName = ""; //$NON-NLS-1$ - try - { - projectName = - config.getAttribute( - PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, - EMPTY_STRING); - } catch (CoreException ce) - { - PerlDebugPlugin.log(ce); - } - fProjText.setText(projectName); - } protected void updateParamsFromConfig(ILaunchConfiguration config) { @@ -255,33 +163,14 @@ fParamText.setText(params); } - protected void updateMainTypeFromConfig(ILaunchConfiguration config) - { - String mainTypeName = ""; //$NON-NLS-1$ - try - { - mainTypeName = - config.getAttribute( - PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, - EMPTY_STRING); - } catch (CoreException ce) - { - PerlDebugPlugin.log(ce); - } - fMainText.setText(mainTypeName); - } /** * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(ILaunchConfigurationWorkingCopy) */ public void performApply(ILaunchConfigurationWorkingCopy config) { - config.setAttribute( - PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, - (String) fProjText.getText()); - config.setAttribute( - PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, - (String) fMainText.getText()); + fFileToExecuteBlock.performApply(config); + config.setAttribute( PerlLaunchConfigurationConstants.ATTR_PROGRAM_PARAMETERS, (String) fParamText.getText()); @@ -292,19 +181,22 @@ public String getErrorMessage() { String m = super.getErrorMessage(); + m = (m == null) ? fFileToExecuteBlock.getErrorMessage() : m; return m == null ? fWorkingDirectoryBlock.getErrorMessage() : m; } public String getMessage() { String m = super.getMessage(); - return m == null ? fWorkingDirectoryBlock.getMessage() : m; + m = m == null ? fWorkingDirectoryBlock.getMessage() : m; + return m == null ? fFileToExecuteBlock.getMessage() : m; } public void setLaunchConfigurationDialog(ILaunchConfigurationDialog dialog) { super.setLaunchConfigurationDialog(dialog); fWorkingDirectoryBlock.setLaunchConfigurationDialog(dialog); + fFileToExecuteBlock.setLaunchConfigurationDialog(dialog); } /** @@ -406,13 +298,6 @@ return null; } - /** - * Convenience method to get the workspace root. - */ - private IWorkspaceRoot getWorkspaceRoot() - { - return ResourcesPlugin.getWorkspace().getRoot(); - } /** * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(ILaunchConfiguration) @@ -423,31 +308,11 @@ setErrorMessage(null); setMessage(null); - String name = fProjText.getText().trim(); - if (name.length() > 0) - { - if (!ResourcesPlugin - .getWorkspace() - .getRoot() - .getProject(name) - .exists()) - { - setErrorMessage("Project does not exist"); //$NON-NLS-1$ - return false; - } - } else - { - setErrorMessage("Specify Project"); //$NON-NLS-1$ - return false; - } - name = fMainText.getText().trim(); - if (name.length() == 0) - { - setErrorMessage("Startup File is not specified"); //$NON-NLS-1$ + if (!fFileToExecuteBlock.isValid(config)){ return false; } - + return fWorkingDirectoryBlock.isValid(config); } @@ -465,13 +330,11 @@ // incorrect result (the performApply() method can result in empty values // for these attributes being set on a config if there is nothing in the // corresponding text boxes) - config.setAttribute(PerlLaunchConfigurationConstants.ATTR_PROJECT_NAME, ""); //$NON-NLS-1$ // } // initializeMainTypeAndName(javaElement, config); - config.setAttribute( - PerlLaunchConfigurationConstants.ATTR_STARTUP_FILE, - ""); + fFileToExecuteBlock.setDefaults(config); + config.setAttribute( PerlLaunchConfigurationConstants.ATTR_PROGRAM_PARAMETERS, ""); @@ -535,96 +398,9 @@ PerlDebugImages.DESC_OBJS_LaunchTabMain)); } - /** - * Returns a String array whith all Perl projects - * @return Stiring[] List of Perl projects - */ - private String[] getPerlProjects() - { - List projectList = new ArrayList(); - IWorkspaceRoot workspaceRoot = PerlDebugPlugin.getWorkspace().getRoot(); - IProject[] projects = workspaceRoot.getProjects(); - for (int i = 0; i < projects.length; i++) - { - IProject project = projects[i]; - try - { - if (project.isAccessible() && project.hasNature(PERL_NATURE_ID)) - { - //System.out.println("Perl Project: " + project.getName()); - projectList.add(project.getName()); - } - } catch (CoreException e) - { - e.printStackTrace(); - } - - } - - return (String[]) projectList.toArray(new String[projectList.size()]); - } - - private String[] getPerlFiles() - { - String projectName = fProjText.getText(); - - if (projectName == null || projectName.length() == 0) - { - return (new String[] { - }); - } - - IWorkspaceRoot workspaceRoot = PerlDebugPlugin.getWorkspace().getRoot(); - IProject project = workspaceRoot.getProject(projectName); - IResourceVisitor visitor = new PerlProjectVisitor(); - try - { - project.accept(visitor); - } catch (CoreException e) - { - e.printStackTrace(); - } - return ((PerlProjectVisitor) visitor).getList(); - } - - class PerlProjectVisitor implements IResourceVisitor - { - private static final String PERL_EDITOR_ID = - "org.epic.perleditor.editors.PerlEditor"; - private static final String EMB_PERL_FILE_EXTENSION = "epl"; - - private List fileList = new ArrayList(); - /* (non-Javadoc) - * @see org.eclipse.core.resources.IResourceVisitor#visit(org.eclipse.core.resources.IResource) - */ - public boolean visit(IResource resource) throws CoreException - { - IEditorDescriptor defaultEditorDescriptor = - PerlDebugPlugin - .getDefault() - .getWorkbench() - .getEditorRegistry() - .getDefaultEditor(resource.getFullPath().toString()); - - if (defaultEditorDescriptor == null) - { - return true; - } - - if (defaultEditorDescriptor.getId().equals(PERL_EDITOR_ID) - && !resource.getFileExtension().equals(EMB_PERL_FILE_EXTENSION)) - { - fileList.add( - resource.getFullPath().removeFirstSegments(1).toString()); - } - - return true; - } - - public String[] getList() - { - return (String[]) fileList.toArray(new String[fileList.size()]); - } + public void actionPerformed(ActionEvent arg0) { + // TODO Auto-generated method stub + } } \ No newline at end of file Index: CGILaunchConfigurationMainTab.java =================================================================== RCS file: /cvsroot/e-p-i-c/org.epic.debug/src/org/epic/debug/ui/CGILaunchConfigurationMainTab.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- CGILaunchConfigurationMainTab.java 7 Mar 2006 19:41:29 -0000 1.1 +++ CGILaunchConfigurationMainTab.java 1 Jun 2006 08:02:19 -0000 1.2 @@ -29,17 +29,23 @@ import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.ui.AbstractLaunchConfigurationTab; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.jface.viewers.LabelProvider; 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.graphics.Font; 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.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.dialogs.ElementListSelectionDialog; +import org.eclipse.ui.plugin.AbstractUIPlugin; import org.epic.debug.*; public class CGILaunchConfigurationMainTab extends AbstractLaunchConfigurationTab @@ -56,9 +62,13 @@ // Project UI widgets protected Label fProjLabel; - protected Combo fProjText; + protected Text fProjText; protected Button fProjButton; - + protected Button projectButton; + /** + * listener for file- and projectButton + */ + private ButtonListener buttonListener = new ButtonListener(); // Main class UI widgets @@ -105,12 +115,11 @@ fProjLabel.setFont(font); //fParamText = new Text(projComp, SWT.SINGLE | SWT.BORDER); - fProjText = - new Combo(projComp, SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY); + fProjText = new Text(projComp, SWT.SINGLE | SWT.BORDER); gd = new GridData(GridData.FILL_HORIZONTAL); fProjText.setLayoutData(gd); fProjText.setFont(font); - fProjText.setItems(getPerlProjects()); + //(fProjText.setItems(getPerlProjects()); fProjText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent evt) @@ -119,6 +128,9 @@ } }); +// creates a browse button + projectButton = createPushButton(projComp, "Browse...", null); + projectButton.addSelectionListener(buttonListener); @@ -172,10 +184,10 @@ /** * Show a dialog that lists all main types */ - protected void handleSearchButtonSelected() +/* protected void handleSearchButtonSelected() { - /* IJavaProject javaProject = getJavaProject(); + IJavaProject javaProject = getJavaProject(); IJavaSearchScope searchScope = null; if ((javaProject == null) || !javaProject.exists()) { searchScope = SearchEngine.createWorkspaceScope(); @@ -210,9 +222,9 @@ fMainText.setText(type.getFullyQualifiedName()); javaProject = type.getJavaProject(); fProjText.setText(javaProject.getElementName()); - }*/ + } } - +*/ /** * Show a dialog that lets the user select a project. This in turn provides * context for the main type, allowing the user to key a main type name, or @@ -229,45 +241,45 @@ fProjText.setText(projectName);*/ } - /** - * Realize a Java Project selection dialog and return the first selected project, - * or null if there was none. - */ - protected IProject choosePerlProject() - { - IProject[] projects; - try - { - // projects= JavaCore.create(getWorkspaceRoot()).getJavaProjects(); - } catch (Exception e) - { - PerlDebugPlugin.log(e); - // projects= new IJavaProject[0]; - } - /* - ILabelProvider labelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); - ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider); - dialog.setTitle(LauncherMessages.getString("JavaMainTab.Project_Selection_13")); //$NON-NLS-1$ - dialog.setMessage(LauncherMessages.getString("JavaMainTab.Choose_a_&project_to_constrain_the_search_for_main_types__14")); //$NON-NLS-1$ - dialog.setElements(projects); - - IJavaProject javaProject = getJavaProject(); - if (javaProject != null) { - dialog.setInitialSelections(new Object[] { javaProject }); - } - if (dialog.open() == ElementListSelectionDialog.OK) { - return (IJavaProject) dialog.getFirstResult(); - }*/ - return null; - } - - /** - * Convenience method to get the workspace root. - */ - private IWorkspaceRoot getWorkspaceRoot() - { - return ResourcesPlugin.getWorkspace().getRoot(); - } +// /** +// * Realize a Java Project selection dialog and return the first selected project, +// * or null if there was none. +// */ +// protected IProject choosePerlProject() +// { +// IProject[] projects; +// try +// { +// // projects= JavaCore.create(getWorkspaceRoot()).getJavaProjects(); +// } catch (Exception e) +// { +// PerlDebugPlugin.log(e); +// // projects= new IJavaProject[0]; +// } +// /* +// ILabelProvider labelProvider= new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); +// ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider); +// dialog.setTitle(LauncherMessages.getString("JavaMainTab.Project_Selection_13")); //$NON-NLS-1$ +// dialog.setMessage(LauncherMessages.getString("JavaMainTab.Choose_a_&project_to_constrain_the_search_for_main_types__14")); //$NON-NLS-1$ +// dialog.setElements(projects); +// +// IJavaProject javaProject = getJavaProject(); +// if (javaProject != null) { +// dialog.setInitialSelections(new Object[] { javaProject }); +// } +// if (dialog.open() == ElementListSelectionDialog.OK) { +// return (IJavaProject) dialog.getFirstResult(); +// }*/ +// return null; +// } +// +// /** +// * Convenience method to get the workspace root. +// */ +// private IWorkspaceRoot getWorkspaceRoot() +// { +// return ResourcesPlugin.getWorkspace().getRoot(); +// } /** * @see org.eclipse.debug.ui.ILaunchConfigurationTab#isValid(ILaunchConfiguration) @@ -366,6 +378,46 @@ return (String[]) projectList.toArray(new String[projectList.size()]); } + + /** + * A listener to update for text changes and widget selection. Creates a + * selection dialog for the buttons. + */ + private class ButtonListener extends SelectionAdapter { + public void widgetSelected(SelectionEvent e) { + Object source = e.getSource(); + // dialog to browse a project + if (source == projectButton) { + String[] projects; + projects = getPerlProjects(); + ILabelProvider labelProvider = new ProjectLabelProvider(); + ElementListSelectionDialog dialog = new ElementListSelectionDialog( + getShell(), labelProvider); + dialog.setTitle("Project Selection"); + dialog.setMessage("Choose a project"); + dialog.setElements(projects); + if (dialog.open() == ElementListSelectionDialog.OK) { + fProjText.setText((String) dialog.getFirstResult()); + + } + // dialog to search a file + } + } + } + /** + * A label provider for projects. + * @author Katrin + * + */ + private class ProjectLabelProvider extends LabelProvider { + + public Image getImage(Object element) { + return AbstractUIPlugin.imageDescriptorFromPlugin( + PerlDebugPlugin.getDefault().toString(), + "icons/project_folder.gif").createImage(); + + } + } } \ No newline at end of file |