package org.teiid.designer.datatools.profiles.jbossds;
import java.util.Properties;
import org.eclipse.datatools.connectivity.IConnectionProfile;
import org.eclipse.datatools.connectivity.ui.wizards.ProfileDetailsPropertyPage;
import org.eclipse.datatools.help.ContextProviderDelegate;
import org.eclipse.help.IContext;
import org.eclipse.help.IContextProvider;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
import org.teiid.designer.datatools.ui.DatatoolsUiConstants;
import org.teiid.designer.datatools.ui.DatatoolsUiPlugin;
import org.teiid.designer.ui.common.util.WidgetFactory;
/**
* JBossDsPropertyPage
*/
public class JBossDsPropertyPage extends ProfileDetailsPropertyPage implements IContextProvider, DatatoolsUiConstants {
private ContextProviderDelegate contextProviderDelegate = new ContextProviderDelegate(DatatoolsUiPlugin.getDefault().getBundle().getSymbolicName());
private Composite scrolled;
private Label jndiLabel;
private Text jndiText;
private Label translatorLabel;
private Text translatorText;
/**
* JBossDSPropertyPage constructor
*/
public JBossDsPropertyPage() {
super();
}
@Override
public IContext getContext( Object target ) {
return contextProviderDelegate.getContext(target);
}
@Override
public int getContextChangeMask() {
return contextProviderDelegate.getContextChangeMask();
}
@Override
public String getSearchExpression( Object target ) {
return contextProviderDelegate.getSearchExpression(target);
}
@Override
protected Control createContents(Composite parent) {
Control result = super.createContents(parent);
this.setPingButtonEnabled(false);
this.setPingButtonVisible(false);
return result;
}
@Override
protected void createCustomContents( Composite parent ) {
GridData gd;
Group group = WidgetFactory.createSimpleGroup(parent, UTIL.getString("Common.Properties.Label")); //$NON-NLS-1$;
scrolled = new Composite(group, SWT.NONE);
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 2;
scrolled.setLayout(gridLayout);
jndiLabel = new Label(scrolled, SWT.NONE);
jndiLabel.setText(UTIL.getString("JBossDsPropertyPage.jndi.Label")); //$NON-NLS-1$
jndiLabel.setToolTipText(UTIL.getString("JBossDsPropertyPage.jndi.ToolTip")); //$NON-NLS-1$
gd = new GridData();
gd.verticalAlignment = GridData.BEGINNING;
jndiLabel.setLayoutData(gd);
jndiText = new Text(scrolled, SWT.SINGLE | SWT.BORDER);
jndiText.setToolTipText(UTIL.getString("JBossDsPropertyPage.jndi.ToolTip")); //$NON-NLS-1$
gd = new GridData();
gd.horizontalAlignment = GridData.FILL;
gd.verticalAlignment = GridData.BEGINNING;
gd.grabExcessHorizontalSpace = true;
gd.horizontalSpan = 1;
jndiText.setLayoutData(gd);
translatorLabel = new Label(scrolled, SWT.NONE);
translatorLabel.setText(UTIL.getString("JBossDsPropertyPage.translator.Label")); //$NON-NLS-1$
translatorLabel.setToolTipText(UTIL.getString("JBossDsPropertyPage.translator.ToolTip")); //$NON-NLS-1$
gd = new GridData();
gd.verticalAlignment = GridData.BEGINNING;
translatorLabel.setLayoutData(gd);
translatorText = new Text(scrolled, SWT.SINGLE | SWT.BORDER);
translatorText.setToolTipText(UTIL.getString("JBossDsPropertyPage.translator.ToolTip")); //$NON-NLS-1$
gd = new GridData();
gd.horizontalAlignment = GridData.FILL;
gd.verticalAlignment = GridData.BEGINNING;
gd.grabExcessHorizontalSpace = true;
gd.horizontalSpan = 1;
translatorText.setLayoutData(gd);
initControls();
addlisteners();
}
/**
*
*/
private void addlisteners() {
jndiText.addModifyListener(new ModifyListener() {
@Override
public void modifyText( ModifyEvent e ) {
validate();
}
});
translatorText.addModifyListener(new ModifyListener() {
@Override
public void modifyText( ModifyEvent e ) {
validate();
}
});
}
protected void validate() {
String errorMessage = null;
boolean valid = true;
if (null == jndiText.getText() || jndiText.getText().isEmpty()) {
errorMessage = UTIL.getString("JBossDsPropertyPage.jndi.Error.Message"); //$NON-NLS-1$
valid = false;
}
if (null == translatorText.getText() || translatorText.getText().isEmpty()) {
errorMessage = UTIL.getString("JBossDsPropertyPage.translator.Error.Message"); //$NON-NLS-1$
valid = false;
}
setErrorMessage(errorMessage);
setValid(valid);
}
/**
*
*/
private void initControls() {
IConnectionProfile profile = getConnectionProfile();
Properties props = profile.getBaseProperties();
if (null != props.get(IJBossDsProfileConstants.JNDI_PROP_ID)) {
jndiText.setText((String)props.get(IJBossDsProfileConstants.JNDI_PROP_ID));
}
if (null != props.get(IJBossDsProfileConstants.TRANSLATOR_PROP_ID)) {
translatorText.setText((String)props.get(IJBossDsProfileConstants.TRANSLATOR_PROP_ID));
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.datatools.connectivity.ui.wizards.ProfileDetailsPropertyPage#collectProperties()
*/
@Override
protected Properties collectProperties() {
Properties result = super.collectProperties();
if (null == result) {
result = new Properties();
}
result.setProperty(IJBossDsProfileConstants.JNDI_PROP_ID, jndiText.getText());
result.setProperty(IJBossDsProfileConstants.TRANSLATOR_PROP_ID, translatorText.getText());
return result;
}
}