blob: d655c3d87e49261dd260716edea7bb5804edfaa6 [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
*******************************************************************************/
/*
* Created on Mar 8, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package org.eclipse.jst.j2ee.internal.wizard;
import org.eclipse.jst.j2ee.internal.plugin.J2EEUIMessages;
import org.eclipse.jst.j2ee.project.datamodel.properties.IJ2EEProjectServerTargetDataModelProperties;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
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.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelSynchHelper;
/**
* @author vijayb
*
* To change the template for this generated type comment go to Window - Preferences - Java - Code
* Generation - Code and Comments
*/
public class ServerTargetGroup implements IJ2EEProjectServerTargetDataModelProperties{
private IDataModel model;
private DataModelSynchHelper synchHelper;
private Combo targetServerCombo;
private Button newTargetServerButton;
public Composite parentUI;
/**
*
*/
public ServerTargetGroup() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param parent
* @param style
*/
public ServerTargetGroup(Composite parent, int style, IDataModel model, DataModelSynchHelper helper) {
this.model = model;
this.parentUI = parent;
synchHelper = helper;
buildComposites(parent);
}
/**
* Create the controls within this composite
*/
public void buildComposites(Composite parent) {
createServerTargetGroup(parent);
}
/**
* @param parent
*/
private void createServerTargetGroup(Composite parent) {
Label serverTargetLabel = new Label(parent, SWT.NONE);
serverTargetLabel.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.TARGET_RUNTIME_LBL));
GridData data = new GridData();
serverTargetLabel.setLayoutData(data);
targetServerCombo = new Combo(parent, SWT.BORDER | SWT.READ_ONLY);
targetServerCombo.setLayoutData((new GridData(GridData.FILL_HORIZONTAL)));
newTargetServerButton = new Button(parent, SWT.NONE);
newTargetServerButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
newTargetServerButton.setText(J2EEUIMessages.getResourceString(J2EEUIMessages.NEW_THREE_DOTS_E));
newTargetServerButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
handleNewTargetServerButtonPressed();
}
});
newTargetServerButton.setEnabled(true);
Control[] deps = new Control[]{serverTargetLabel, newTargetServerButton};
synchHelper.synchCombo(targetServerCombo, RUNTIME_TARGET_ID, deps);
}
/**
*
*/
protected void handleNewTargetServerButtonPressed() {
FlexibleProjectCreationWizardPage.launchNewRuntimeWizard(parentUI.getShell(), model);
}
public void dispose() {
model.removeListener(synchHelper);
model = null;
}
/**
* @return Returns the targetServerCombo.
*/
public Combo getTargetServerCombo() {
return targetServerCombo;
}
/**
* @param targetServerCombo
* The targetServerCombo to set.
*/
public void setTargetServerCombo(Combo targetServerCombo) {
this.targetServerCombo = targetServerCombo;
}
/**
* @return Returns the newTargetServerButton.
*/
public Button getNewTargetServerButton() {
return newTargetServerButton;
}
/**
* @param newTargetServerButton
* The newTargetServerButton to set.
*/
public void setNewTargetServerButton(Button newTargetServerButton) {
this.newTargetServerButton = newTargetServerButton;
}
}