diff options
Diffstat (limited to 'plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java')
-rw-r--r-- | plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java | 434 |
1 files changed, 0 insertions, 434 deletions
diff --git a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java b/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java deleted file mode 100644 index 2507f2a8a..000000000 --- a/plugins/org.eclipse.jst.server.tomcat.ui/tomcatui/org/eclipse/jst/server/tomcat/ui/internal/editor/ConfigurationWebModuleEditorPart.java +++ /dev/null @@ -1,434 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2007 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - Initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.server.tomcat.ui.internal.editor; - -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jst.server.core.IWebModule; -import org.eclipse.jst.server.tomcat.core.internal.ITomcatServerWorkingCopy; -import org.eclipse.jst.server.tomcat.core.internal.TomcatConfiguration; -import org.eclipse.jst.server.tomcat.core.internal.TomcatServer; -import org.eclipse.jst.server.tomcat.core.internal.WebModule; -import org.eclipse.jst.server.tomcat.core.internal.command.AddModuleCommand; -import org.eclipse.jst.server.tomcat.core.internal.command.AddWebModuleCommand; -import org.eclipse.jst.server.tomcat.core.internal.command.ModifyWebModuleCommand; -import org.eclipse.jst.server.tomcat.core.internal.command.RemoveModuleCommand; -import org.eclipse.jst.server.tomcat.core.internal.command.RemoveWebModuleCommand; -import org.eclipse.jst.server.tomcat.ui.internal.ContextIds; -import org.eclipse.jst.server.tomcat.ui.internal.Messages; -import org.eclipse.jst.server.tomcat.ui.internal.TomcatUIPlugin; -import org.eclipse.osgi.util.NLS; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -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.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorSite; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.forms.widgets.ExpandableComposite; -import org.eclipse.ui.forms.widgets.FormToolkit; -import org.eclipse.ui.forms.widgets.ScrolledForm; -import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.ui.help.IWorkbenchHelpSystem; - -import org.eclipse.wst.server.core.IModule; -import org.eclipse.wst.server.core.ServerUtil; -import org.eclipse.wst.server.ui.ServerUICore; -import org.eclipse.wst.server.ui.editor.ServerEditorPart; -/** - * Tomcat configuration web module editor page. - */ -public class ConfigurationWebModuleEditorPart extends ServerEditorPart { - protected ITomcatServerWorkingCopy server2; - protected TomcatConfiguration configuration; - - protected Table webAppTable; - protected int selection = -1; - protected Button addProject; - protected Button addExtProject; - protected Button remove; - protected Button edit; - - protected PropertyChangeListener listener; - - /** - * ConfigurationWebModuleEditorPart constructor comment. - */ - public ConfigurationWebModuleEditorPart() { - super(); - } - - /** - * - */ - protected void addChangeListener() { - listener = new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent event) { - if (TomcatConfiguration.MODIFY_WEB_MODULE_PROPERTY.equals(event.getPropertyName())) { - initialize(); - } else if (TomcatConfiguration.ADD_WEB_MODULE_PROPERTY.equals(event.getPropertyName())) { - initialize(); - } else if (TomcatConfiguration.REMOVE_WEB_MODULE_PROPERTY.equals(event.getPropertyName())) { - initialize(); - } - } - }; - configuration.addPropertyChangeListener(listener); - } - - /** - * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) - */ - public void createPartControl(Composite parent) { - FormToolkit toolkit = getFormToolkit(parent.getDisplay()); - - ScrolledForm form = toolkit.createScrolledForm(parent); - toolkit.decorateFormHeading(form.getForm()); - form.setText(Messages.configurationEditorWebModulesPageTitle); - form.setImage(TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_WEB_MODULE)); - GridLayout layout = new GridLayout(); - layout.marginTop = 6; - layout.marginLeft = 6; - form.getBody().setLayout(layout); - - Section section = toolkit.createSection(form.getBody(), ExpandableComposite.TITLE_BAR | Section.DESCRIPTION); - section.setText(Messages.configurationEditorWebModulesSection); - section.setDescription(Messages.configurationEditorWebModulesDescription); - section.setLayoutData(new GridData(GridData.FILL_BOTH)); - - Composite composite = toolkit.createComposite(section); - layout = new GridLayout(); - layout.numColumns = 2; - layout.marginHeight = 5; - layout.marginWidth = 10; - layout.verticalSpacing = 5; - layout.horizontalSpacing = 15; - composite.setLayout(layout); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - IWorkbenchHelpSystem whs = PlatformUI.getWorkbench().getHelpSystem(); - whs.setHelp(composite, ContextIds.CONFIGURATION_EDITOR_WEBMODULES); - toolkit.paintBordersFor(composite); - section.setClient(composite); - - webAppTable = toolkit.createTable(composite, SWT.V_SCROLL | SWT.SINGLE | SWT.FULL_SELECTION); - webAppTable.setHeaderVisible(true); - webAppTable.setLinesVisible(true); - whs.setHelp(webAppTable, ContextIds.CONFIGURATION_EDITOR_WEBMODULES_LIST); - //toolkit.paintBordersFor(webAppTable); - - TableLayout tableLayout = new TableLayout(); - - TableColumn col = new TableColumn(webAppTable, SWT.NONE); - col.setText(Messages.configurationEditorPathColumn); - ColumnWeightData colData = new ColumnWeightData(8, 85, true); - tableLayout.addColumnData(colData); - - TableColumn col2 = new TableColumn(webAppTable, SWT.NONE); - col2.setText(Messages.configurationEditorDocBaseColumn); - colData = new ColumnWeightData(13, 135, true); - tableLayout.addColumnData(colData); - - TableColumn col3 = new TableColumn(webAppTable, SWT.NONE); - col3.setText(Messages.configurationEditorProjectColumn); - colData = new ColumnWeightData(8, 85, true); - tableLayout.addColumnData(colData); - - TableColumn col4 = new TableColumn(webAppTable, SWT.NONE); - col4.setText(Messages.configurationEditorReloadColumn); - colData = new ColumnWeightData(7, 75, true); - tableLayout.addColumnData(colData); - - webAppTable.setLayout(tableLayout); - - GridData data = new GridData(GridData.FILL_HORIZONTAL); - data.widthHint = 450; - data.heightHint = 120; - webAppTable.setLayoutData(data); - webAppTable.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - selectWebApp(); - } - }); - - Composite rightPanel = toolkit.createComposite(composite); - layout = new GridLayout(); - layout.marginHeight = 0; - layout.marginWidth = 0; - rightPanel.setLayout(layout); - data = new GridData(); - rightPanel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.VERTICAL_ALIGN_BEGINNING)); - //toolkit.paintBordersFor(rightPanel); - - // buttons still to add: - // add project, add external module, remove module - addProject = toolkit.createButton(rightPanel, Messages.configurationEditorAddProjectModule, SWT.PUSH); - data = new GridData(GridData.FILL_HORIZONTAL); - addProject.setLayoutData(data); - whs.setHelp(addProject, ContextIds.CONFIGURATION_EDITOR_WEBMODULES_ADD_PROJECT); - - // disable the add project module button if there are no - // web projects in the workbench - if (!canAddWebModule()) - addProject.setEnabled(false); - else { - addProject.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - WebModuleDialog dialog = new WebModuleDialog(getEditorSite().getShell(), getServer(), server2, configuration, true); - dialog.open(); - if (dialog.getReturnCode() == IDialogConstants.OK_ID) { - execute(new AddModuleCommand(getServer(), dialog.module4)); - } - } - }); - } - - addExtProject = toolkit.createButton(rightPanel, Messages.configurationEditorAddExternalModule, SWT.PUSH); - data = new GridData(GridData.FILL_HORIZONTAL); - addExtProject.setLayoutData(data); - addExtProject.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - WebModuleDialog dialog = new WebModuleDialog(getEditorSite().getShell(), getServer(), server2, configuration, false); - dialog.open(); - if (dialog.getReturnCode() == IDialogConstants.OK_ID) { - execute(new AddWebModuleCommand(configuration, dialog.getWebModule())); - } - } - }); - whs.setHelp(addExtProject, ContextIds.CONFIGURATION_EDITOR_WEBMODULES_ADD_EXTERNAL); - - edit = toolkit.createButton(rightPanel, Messages.editorEdit, SWT.PUSH); - data = new GridData(GridData.FILL_HORIZONTAL); - edit.setLayoutData(data); - edit.setEnabled(false); - edit.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - if (selection < 0) - return; - WebModule module = (WebModule) configuration.getWebModules().get(selection); - WebModuleDialog dialog = new WebModuleDialog(getEditorSite().getShell(), getServer(), server2, configuration, module); - dialog.open(); - if (dialog.getReturnCode() == IDialogConstants.OK_ID) { - execute(new ModifyWebModuleCommand(configuration, selection, dialog.getWebModule())); - } - } - }); - whs.setHelp(edit, ContextIds.CONFIGURATION_EDITOR_WEBMODULES_EDIT); - - remove = toolkit.createButton(rightPanel, Messages.editorRemove, SWT.PUSH); - data = new GridData(GridData.FILL_HORIZONTAL); - remove.setLayoutData(data); - remove.setEnabled(false); - remove.addSelectionListener(new SelectionAdapter() { - public void widgetSelected(SelectionEvent e) { - if (selection < 0) - return; - TableItem item = webAppTable.getItem(selection); - if (item.getData() != null) { - IModule module = (IModule) item.getData(); - execute(new RemoveModuleCommand(getServer(), module)); - } else { - execute(new RemoveWebModuleCommand(configuration, selection)); - } - remove.setEnabled(false); - edit.setEnabled(false); - selection = -1; - } - }); - whs.setHelp(remove, ContextIds.CONFIGURATION_EDITOR_WEBMODULES_REMOVE); - - form.setContent(section); - form.reflow(true); - - initialize(); - } - - protected boolean canAddWebModule() { - IModule[] modules = ServerUtil.getModules(server.getServerType().getRuntimeType().getModuleTypes()); - if (modules != null) { - int size = modules.length; - for (int i = 0; i < size; i++) { - IWebModule webModule = (IWebModule) modules[i].loadAdapter(IWebModule.class, null); - if (webModule != null) { - IStatus status = server.canModifyModules(new IModule[] { modules[i] }, null, null); - if (status != null && status.isOK()) - return true; - } - } - } - return false; - } - - public void dispose() { - super.dispose(); - - if (configuration != null) - configuration.removePropertyChangeListener(listener); - } - - /* (non-Javadoc) - * Initializes the editor part with a site and input. - */ - public void init(IEditorSite site, IEditorInput input) { - super.init(site, input); - - TomcatServer ts = (TomcatServer) server.loadAdapter(TomcatServer.class, null); - try { - configuration = ts.getTomcatConfiguration(); - } catch (Exception e) { - // ignore - } - if (configuration != null) - addChangeListener(); - - if (server != null) - server2 = (ITomcatServerWorkingCopy) server.loadAdapter(ITomcatServerWorkingCopy.class, null); - - initialize(); - } - - /** - * - */ - protected void initialize() { - if (webAppTable == null) - return; - - webAppTable.removeAll(); - setErrorMessage(null); - - ILabelProvider labelProvider = ServerUICore.getLabelProvider(); - List list = configuration.getWebModules(); - Iterator iterator = list.iterator(); - while (iterator.hasNext()) { - WebModule module = (WebModule) iterator.next(); - TableItem item = new TableItem(webAppTable, SWT.NONE); - - String memento = module.getMemento(); - String projectName = ""; - Image projectImage = null; - if (memento != null && memento.length() > 0) { - projectName = NLS.bind(Messages.configurationEditorProjectMissing, new String[] {memento}); - projectImage = TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_PROJECT_MISSING); - IModule module2 = ServerUtil.getModule(memento); - if (module2 != null) { - projectName = labelProvider.getText(module2); - projectImage = labelProvider.getImage(module2); - item.setData(module2); - } - } - - String reload = module.isReloadable() ? Messages.configurationEditorReloadEnabled : Messages.configurationEditorReloadDisabled; - String[] s = new String[] {module.getPath(), module.getDocumentBase(), projectName, reload}; - item.setText(s); - item.setImage(0, TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_WEB_MODULE)); - if (projectImage != null) - item.setImage(2, projectImage); - - if (!isDocumentBaseValid(module.getDocumentBase())) { - item.setImage(1, TomcatUIPlugin.getImage(TomcatUIPlugin.IMG_PROJECT_MISSING)); - setErrorMessage(NLS.bind(Messages.errorMissingWebModule, module.getDocumentBase())); - } - } - labelProvider = null; - - if (readOnly) { - addProject.setEnabled(false); - addExtProject.setEnabled(false); - edit.setEnabled(false); - remove.setEnabled(false); - } else { - addProject.setEnabled(canAddWebModule()); - addExtProject.setEnabled(true); - } - } - - /** - * - */ - protected void selectWebApp() { - if (readOnly) - return; - - try { - selection = webAppTable.getSelectionIndex(); - remove.setEnabled(true); - edit.setEnabled(true); - } catch (Exception e) { - selection = -1; - remove.setEnabled(false); - edit.setEnabled(false); - } - } - - protected boolean isDocumentBaseValid(String s) { - if (s == null || s.length() < 2) - return true; - - // check absolute path - File f = new File(s); - if (f.exists()) - return true; - - // check workspace - try { - if (ResourcesPlugin.getWorkspace().getRoot().getProject(s).exists()) - return true; - } catch (Exception e) { - // bad path - } - - if (s.startsWith(configuration.getDocBasePrefix())) { - try { - String t = s.substring(configuration.getDocBasePrefix().length()); - if (ResourcesPlugin.getWorkspace().getRoot().getProject(t).exists()) - return true; - } catch (Exception e) { - // bad path - } - } - - // check server relative path - try { - f = server.getRuntime().getLocation().append(s).toFile(); - if (f.exists()) - return true; - } catch (Exception e) { - // bad path - } - - return false; - } - - /* - * @see IWorkbenchPart#setFocus() - */ - public void setFocus() { - if (webAppTable != null) - webAppTable.setFocus(); - } -} |