/******************************************************************************* * Copyright (c) 2005, 2007 IBM Corporation and BEA Systems, Inc. * 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: * rfrost@bea.com - derived from WebLibDependencyPropertiesPage for projects referenced just from a dynamic web project. *******************************************************************************/ package org.eclipse.jst.j2ee.internal; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; /** * Supports UI manipulation of the published/exported classpath entries for projects referenced by dynamic web projects. * @deprecated wtp 3.2 */ public class WebRefDependencyPropertiesPage extends JARDependencyPropertiesPage { public WebRefDependencyPropertiesPage(final IProject project, final J2EEDependenciesPage page) { super(project, page); } @Override public Composite createContents(Composite parent) { initialize(); Composite composite = createBasicComposite(parent); if (model.getComponent() != null) { if (!isValidComponent()) { return composite; } J2EEDependenciesPage.createDescriptionComposite(composite, ManifestUIResourceHandler.Web_Ref_Desc); createListGroup(composite); tableManager.refresh(); setEnablement(); } Dialog.applyDialogFont(parent); postCreateContents(); return composite; } @Override protected void createTableComposite(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridData gData = new GridData(GridData.FILL_BOTH); composite.setLayoutData(gData); tableManager = new ClasspathTableManager(this, model, validateEditListener); tableManager.setReadOnly(isReadOnly()); tableManager.fillWebRefComposite(composite); } @Override protected boolean isValidComponent() { // must have the Java nature and cannot be a dynamic web project boolean isJavaProject = false; try { isJavaProject = project.hasNature(JavaCore.NATURE_ID); } catch (CoreException ce) {} if (JavaEEProjectUtilities.isDynamicWebProject(project) || !isJavaProject) { propPage.setErrorMessage(ManifestUIResourceHandler.Dynamic_Web_Error); return false; } else if (J2EEProjectUtilities.getReferencingWebProjects(project).length == 0) { propPage.setErrorMessage(ManifestUIResourceHandler.No_Web_Reference_Error); return false; } return true; } protected void setEnablement() { if (tableManager.availableJARsViewer.getTable().getItems().length == 0) { tableManager.selectAllButton.setEnabled(false); tableManager.deselectAllButton.setEnabled(false); } else { tableManager.selectAllButton.setEnabled(true); tableManager.deselectAllButton.setEnabled(true); } } @Override protected void handleClasspathChange() { super.handleClasspathChange(); setEnablement(); } @Override public boolean performOk() { if (model.getComponent() == null || !isValidComponent()) { return true; } if (!isDirty) { return true; } return super.performOk(); } }