| /*************************************************************************************************** |
| * Copyright (c) 2003, 2004 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.wst.web.ui.internal.wizards; |
| |
| import java.util.Vector; |
| |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.layout.GridLayout; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Event; |
| import org.eclipse.swt.widgets.Label; |
| import org.eclipse.swt.widgets.Listener; |
| import org.eclipse.swt.widgets.Text; |
| import org.eclipse.wst.web.internal.ResourceHandler; |
| import org.eclipse.wst.web.internal.WebPropertiesUtil; |
| |
| public class SimpleContextRootComposite extends Composite { |
| protected Text contextRootField; |
| private String errorMessage = null; |
| |
| // listeners interested in the event when the context root |
| // value is modified. |
| private java.util.List modifyListeners; |
| |
| protected Listener contextRootModifyListener = new Listener() { |
| public void handleEvent(Event e) { |
| if (contextRootField != null) |
| contextRootModified(); |
| } |
| }; |
| |
| public SimpleContextRootComposite(Composite parent) { |
| super(parent, SWT.NONE); |
| createControls(); |
| modifyListeners = new Vector(1); |
| } |
| |
| protected void createControls() { |
| // container specification group |
| GridLayout layout = new GridLayout(); |
| layout.numColumns = 2; |
| layout.marginHeight = 0; |
| layout.marginWidth = 0; |
| setLayout(layout); |
| GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.GRAB_HORIZONTAL); |
| data.horizontalSpan = 2; |
| setLayoutData(data); |
| |
| // New Context Root Label |
| Label contextRootLabel = new Label(this, SWT.CHECK); |
| contextRootLabel.setText(ResourceHandler.getString("StaticContextRootComposite.Context_Root_Label")); //$NON-NLS-1$ |
| |
| // New Context Root Entryfield |
| contextRootField = new Text(this, SWT.BORDER); |
| data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL); |
| data.grabExcessHorizontalSpace = true; |
| contextRootField.setLayoutData(data); |
| |
| contextRootField.addListener(SWT.Modify, contextRootModifyListener); |
| |
| } |
| |
| public String getContextRoot() { |
| return contextRootField.getText(); |
| } |
| |
| public void setEnabled(boolean enabled) { |
| if (contextRootField != null) |
| contextRootField.setEnabled(enabled); |
| } |
| |
| protected void contextRootModified() { |
| errorMessage = WebPropertiesUtil.validateContextRoot(getContextRoot()); |
| // notify listeners |
| Event e = new Event(); |
| e.type = SWT.Modify; |
| e.widget = contextRootField; |
| for (int i = 0; i < modifyListeners.size(); i++) { |
| ((Listener) modifyListeners.get(i)).handleEvent(e); |
| } |
| } |
| |
| public void setContextRoot(String cr) { |
| contextRootField.setText(cr); |
| } |
| |
| /** |
| * There is a default context root validation listener provided by the |
| * composite, adding external listeners will replace the default listener. |
| */ |
| public void addModifyListener(Listener l) { |
| modifyListeners.add(l); |
| } |
| |
| public void removeModifyListener(Listener l) { |
| modifyListeners.remove(l); |
| } |
| |
| /** |
| * validate the context root value and return the error message |
| */ |
| public String getErrorMessage() { |
| return errorMessage; |
| } |
| |
| public boolean setFocus() { |
| return contextRootField.setFocus(); |
| } |
| } |