blob: f21db8f50d58a73c461ce1f79ac3bfe0656d81f4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2005 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.j2ee.internal.wizard;
import org.eclipse.jst.j2ee.project.facet.IJ2EEModuleFacetInstallDataModelProperties;
import org.eclipse.jst.j2ee.ui.project.facet.EarSelectionPanel;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
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.Display;
import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
import org.eclipse.wst.web.ui.internal.wizards.DataModelFacetInstallPage;
public abstract class J2EEModuleFacetInstallPage extends DataModelFacetInstallPage implements IJ2EEModuleFacetInstallDataModelProperties {
private IDataModelListener facetVersionListener = null;
protected Button addDD;
public J2EEModuleFacetInstallPage(String pageName) {
super(pageName);
}
protected EarSelectionPanel earPanel;
public void dispose() {
if (null != earPanel) {
earPanel.dispose();
}
this.model.removeListener( this.facetVersionListener );
super.dispose();
}
protected void setupEarControl(final Composite parent) {
Composite c = new Composite(parent, SWT.NONE);
c.setLayoutData(gdhfill());
final GridLayout layout = new GridLayout(3, false);
layout.marginWidth = 0;
layout.marginHeight = 0;
c.setLayout(layout);
this.earPanel = new EarSelectionPanel(model, c);
}
protected void createGenerateDescriptorControl( final Composite parent )
{
this.addDD = new Button(parent, SWT.CHECK);
this.addDD.setText(Resources.generateDeploymentDescriptor);
//synchHelper.synchCheckbox(addDD, GENERATE_DD, null); bug 215284 - see enter()
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
this.addDD.setLayoutData(gd);
}
protected void registerFacetVersionChangeListener()
{
this.facetVersionListener = new IDataModelListener()
{
public void propertyChanged( final DataModelEvent event )
{
if( event.getFlag() == DataModelEvent.VALUE_CHG &&
event.getPropertyName().equals( FACET_VERSION ) )
{
final Runnable runnable = new Runnable()
{
public void run()
{
handleFacetVersionChangedEvent();
}
};
if(Thread.currentThread() == Display.getDefault().getThread()){
runnable.run();
} else {
Display.getDefault().asyncExec( runnable );
}
}
}
};
this.model.addListener( facetVersionListener );
handleFacetVersionChangedEvent();
}
protected void handleFacetVersionChangedEvent()
{
// The default implementation doesn't do anything. The subclass should override
// to handle this event.
}
private static final class Resources extends NLS {
public static String generateDeploymentDescriptor;
static {
initializeMessages(J2EEModuleFacetInstallPage.class.getName(), Resources.class);
}
}
protected void enter() {
if (isFirstTimeToPage() && addDD != null)
{
synchHelper.synchCheckbox(addDD, GENERATE_DD, null);
}
super.enter();
}
}