package com.sysdeo.eclipse.tomcat; /* * (c) Copyright Sysdeo SA 2001, 2002. * All Rights Reserved. */ import java.io.File; import org.eclipse.core.runtime.CoreException; import org.eclipse.swt.SWT; 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.FileDialog; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; public class TomcatProjectWARPropertyPage implements TomcatPluginResources { private Button exportSourceCheck; private Text warLocationText; private Text rootDirText; private TomcatProjectPropertyPage page; private static final int TEXT_FIELD_WIDTH = 200; public TomcatProjectWARPropertyPage(TomcatProjectPropertyPage page) { this.page = page; } /** * returns a control which consists of the ui elements of this page */ protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NULL); composite.setLayout(new GridLayout()); createWarLocationGroup(composite); return composite; } public void createWarLocationGroup(Composite parent) { Composite warLocationGroup = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 3; warLocationGroup.setLayout(layout); warLocationGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); // location label Label warLocationLabel = new Label(warLocationGroup, SWT.NONE); warLocationLabel.setText(WIZARD_PROJECT_WARLOCATION_LABEL); warLocationLabel.setEnabled(true); // project location entry field warLocationText = new Text(warLocationGroup, SWT.BORDER); GridData data = new GridData(GridData.FILL_HORIZONTAL); data.widthHint = TEXT_FIELD_WIDTH; warLocationText.setLayoutData(data); warLocationText.setText(this.getWarLocation()); warLocationText.setEnabled(true); Button browseButton = new Button(warLocationGroup, SWT.PUSH); browseButton.setText(BROWSE_BUTTON_LABEL); browseButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent evt) { String newValue = warFieldChange(); if (newValue != null) { warLocationText.setText(newValue); } } }); browseButton.setEnabled(true); exportSourceCheck = new Button(warLocationGroup, SWT.CHECK | SWT.LEFT); exportSourceCheck.setText(WIZARD_PROJECT_EXPORTSOURCE_LABEL); data = new GridData(); data.horizontalSpan = 3; exportSourceCheck.setLayoutData(data); exportSourceCheck.setEnabled(true); exportSourceCheck.setSelection(this.getExportSource()); } protected String getWarLocation() { String result = ""; try { TomcatProject prj = page.getTomcatProject(); if (prj != null) result = prj.getWarLocation(); } catch (CoreException ex) { // result = ""; } return result; } protected boolean getExportSource() { boolean result = false; try { TomcatProject prj = page.getTomcatProject(); if (prj != null) result = prj.getExportSource(); } catch (CoreException ex) { // result = false; } return result; } /** * performes the ok action for this property page */ public boolean performOk() { try { TomcatProject prj = page.getTomcatProject(); prj.setWarLocation(warLocationText.getText()); prj.setExportSource(exportSourceCheck.getSelection()); prj.saveProperties(); } catch (Exception ex) { TomcatLauncherPlugin.log(ex.getMessage()); } return true; } protected String warFieldChange() { File f = new File(warLocationText.getText()); if (!f.exists()) f = null; File d = getFile(f); if (d == null) return null; return d.getAbsolutePath(); } /** * Helper to open the file chooser dialog. */ private File getFile(File startingDirectory) { FileDialog dialog = new FileDialog(page.getShell(), SWT.OPEN); if (startingDirectory != null) dialog.setFileName(startingDirectory.getPath()); // if (extensions != null) // dialog.setFilterExtensions(extensions); String file = dialog.open(); if (file != null) { file = file.trim(); if (file.length() > 0) return new File(file); } return null; } }