blob: 67f04c64c1b6c129a27ff2ea5081d1bf658f8ee4 [file] [log] [blame]
package org.eclipse.jst.j2ee.internal.wizard;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jst.j2ee.application.internal.operations.J2EEComponentCreationDataModel;
import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEComponentCreationDataModelProperties;
import org.eclipse.jst.j2ee.internal.earcreation.EarComponentCreationDataModelProvider;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.wst.common.componentcore.datamodel.properties.IComponentCreationDataModelProperties;
import org.eclipse.wst.common.componentcore.internal.operation.ComponentCreationDataModel;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper;
public class ServerEarAndStandaloneDataModelGroup {
private Button newEAR;
private Combo earCombo;
private Label earLabel;
private Button addToEAR;
private IDataModel model;
private DataModelSynchHelper synchHelper;
private Composite parentComposite;
/**
*
*/
public ServerEarAndStandaloneDataModelGroup(Composite parent, IDataModel model) {
this.model = model;
this.parentComposite = parent;
synchHelper = new DataModelSynchHelper(model);
buildComposites(parent);
}
/**
*
* @param parent
*/
public void buildComposites(Composite parent) {
createEarAndStandaloneComposite(parent);
}
/**
* @param parent
*/
protected void createEarAndStandaloneComposite(Composite parent) {
if (model.getBooleanProperty(IJ2EEComponentCreationDataModelProperties.UI_SHOW_EAR_SECTION)) {
Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
GridData gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 3;
separator.setLayoutData(gd);
new Label(parent, SWT.NONE); //pad
// Create Add to EAR checkbox
addToEAR = new Button(parent, SWT.CHECK);
addToEAR.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.LINK_MODULETO_EAR_PROJECT));
addToEAR.setSelection(true);
gd = new GridData(GridData.FILL_HORIZONTAL);
gd.horizontalSpan = 2;
addToEAR.setLayoutData(gd);
synchHelper.synchCheckbox(addToEAR, J2EEComponentCreationDataModel.ADD_TO_EAR, null);
addToEAR.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
handleAddToEarSelection();
}
public void widgetDefaultSelected(SelectionEvent e) {
//do nothing
}
});
// Create EAR Group
earLabel = new Label(parent, SWT.NONE);
earLabel.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.EAR_PROJECT_FOR_MODULE_CREATION));
earCombo = new Combo(parent, SWT.NONE);
earCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
newEAR = new Button(parent, SWT.NONE);
newEAR.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.NEW_THREE_DOTS_W));
newEAR.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
newEAR.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
handleNewEarSelected();
}
public void widgetDefaultSelected(SelectionEvent e) {
//do nothing
}
});
Control[] deps = new Control[]{earLabel, newEAR};
synchHelper.synchCombo(earCombo, J2EEComponentCreationDataModel.EAR_MODULE_NAME, deps);
}
}
/**
*
*/
protected void handleAddToEarSelection() {
boolean selection = addToEAR.getSelection();
earLabel.setEnabled(selection);
earCombo.setEnabled(selection);
newEAR.setEnabled(selection);
}
/**
*
*/
protected void handleNewEarSelected() {
IDataModel earModel = DataModelFactory.createDataModel(new EarComponentCreationDataModelProvider());
//earModel.setIntProperty(IJ2EEComponentCreationDataModelProperties.J2EE_VERSION, model.getIntProperty(IJ2EEComponentCreationDataModelProperties.J2EE_VERSION));
earModel.setIntProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_VERSION, model.getIntProperty(IJ2EEComponentCreationDataModelProperties.COMPONENT_VERSION));
earModel.setProperty(IComponentCreationDataModelProperties.COMPONENT_NAME, model.getProperty(IJ2EEComponentCreationDataModelProperties.EAR_COMPONENT_NAME));
EARComponentCreationWizard earWizard = new EARComponentCreationWizard();
WizardDialog dialog = new WizardDialog(parentComposite.getShell(), earWizard);
if (Window.OK == dialog.open()) {
model.setProperty(IJ2EEComponentCreationDataModelProperties.EAR_COMPONENT_NAME, earModel.getProperty(ComponentCreationDataModel.COMPONENT_NAME));
}
}
public void dispose() {
model.removeListener(synchHelper);
model.dispose();
synchHelper = null;
model = null;
}
}