Skip to content

Commit

Permalink
TEIIDDES-2528
Browse files Browse the repository at this point in the history
 * create new class that extends ConnectionProfileDetailsPage to wrap
the main panel with a DefaultScrolledComposite
 * reduced the height hint for the parameters panel a bit
  • Loading branch information
blafond committed May 18, 2015
1 parent cbe64d7 commit 4f1ea0b
Show file tree
Hide file tree
Showing 3 changed files with 240 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public void widgetDefaultSelected(SelectionEvent e) {
this.removePropertyButton.setEnabled(false);

this.propertiesViewer = new TableViewerBuilder(panel, (SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION | SWT.BORDER));
GridDataFactory.fillDefaults().grab(true, true).span(3, 1).hint(360, 160).applyTo(propertiesViewer.getTableComposite());
GridDataFactory.fillDefaults().grab(true, true).span(3, 1).hint(360, 100).applyTo(propertiesViewer.getTableComposite());

ColumnViewerToolTipSupport.enableFor(this.propertiesViewer.getTableViewer());
this.propertiesViewer.setContentProvider(new IStructuredContentProvider() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.eclipse.datatools.connectivity.ui.wizards.NewConnectionProfileWizard;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.events.SelectionEvent;
Expand All @@ -53,12 +54,14 @@
import org.teiid.core.designer.util.StringUtilities;
import org.teiid.datatools.connectivity.model.Parameter;
import org.teiid.designer.datatools.ui.DatatoolsUiConstants;
import org.teiid.designer.datatools.ui.dialogs.ScrolledConnectionProfileDetailsPage;
import org.teiid.designer.ui.common.ICredentialsCommon;
import org.teiid.designer.ui.common.ICredentialsCommon.SecurityType;
import org.teiid.designer.ui.common.util.WidgetFactory;
import org.teiid.designer.ui.common.widget.CredentialsComposite;
import org.teiid.designer.ui.common.widget.DefaultScrolledComposite;

public class WSProfileDetailsWizardPage extends ConnectionProfileDetailsPage implements DatatoolsUiConstants {
public class WSProfileDetailsWizardPage extends ScrolledConnectionProfileDetailsPage implements DatatoolsUiConstants {


private Composite scrolled;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.datatools.ui.dialogs;

import org.eclipse.datatools.connectivity.internal.ui.ConnectivityUIPlugin;
import org.eclipse.datatools.connectivity.internal.ui.IHelpConstants;
import org.eclipse.datatools.connectivity.ui.Messages;
import org.eclipse.datatools.connectivity.ui.wizards.ConnectionProfileDetailsPage;
import org.eclipse.datatools.connectivity.ui.wizards.NewConnectionProfileWizard;
import org.eclipse.datatools.help.HelpUtil;
import org.eclipse.help.IContextProvider;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.FillLayout;
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.teiid.designer.ui.common.widget.DefaultScrolledComposite;

/**
* Extending <code>ConnectionProfileDetailsPage</code> so we can wrap the page in a scrolled composite. This provides
* profile pages the ability to build a larger page for necessary content and still allow for editing on lower resolution
* displays
*
* @author blafond
*
*/
public abstract class ScrolledConnectionProfileDetailsPage extends ConnectionProfileDetailsPage implements IContextProvider {


private boolean defaultAutoConnectOnFinishFlag = true;

private Button autoConnectOnFinishButton = null;
private Button autoConnectOnStartupButton = null;

private boolean _showAutoConnect = true;
private boolean _showAutoConnectOnFinish = true;
private boolean _showPing = true;

/**
* @param name
*/
public ScrolledConnectionProfileDetailsPage(String name) {
super(name);
}

/**
* @param pageName
* @param title
* @param titleImage
*/
public ScrolledConnectionProfileDetailsPage(String pageName, String title,
ImageDescriptor titleImage) {
super(pageName, title, titleImage);
}

public void createControl(Composite parent) {
final Composite hostPanel = new Composite(parent, SWT.NONE);
hostPanel.setLayout(new GridLayout(1, false));
hostPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

// Create page
DefaultScrolledComposite scrolledComposite = new DefaultScrolledComposite(hostPanel, SWT.H_SCROLL | SWT.V_SCROLL);
scrolledComposite.setExpandHorizontal(true);
scrolledComposite.setExpandVertical(true);
GridLayoutFactory.fillDefaults().equalWidth(false).applyTo(scrolledComposite);
GridDataFactory.fillDefaults().grab(true, false);

final Composite mainPanel = scrolledComposite.getPanel(); //new Composite(scrolledComposite, SWT.NONE);
mainPanel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
mainPanel.setLayout(new GridLayout(2, false));
((GridData)mainPanel.getLayoutData()).minimumWidth = 400;

// Client shouldn't call setControl again.
setControl(hostPanel);

// setting help now rather than at the end so that
// extenders can override with different context IDs in their
// custom UI
getShell().setData( HelpUtil.CONTEXT_PROVIDER_KEY, this);
HelpUtil.setHelp( getControl(), HelpUtil.getContextId(IHelpConstants.CONTEXT_ID_NEW_CONNECTION_PROFILE_PAGE, ConnectivityUIPlugin.getDefault().getBundle().getSymbolicName()));

final Composite composite = new Composite(mainPanel, SWT.NONE);
FillLayout flayout = new FillLayout();
flayout.marginHeight = 0;
flayout.marginWidth = 0;
composite.setLayout(flayout);
GridData compositeGD = new GridData(GridData.FILL_BOTH);
compositeGD.horizontalSpan = 2;
composite.setLayoutData(compositeGD);

createCustomControl(composite);


if (_showAutoConnectOnFinish) {
autoConnectOnFinishButton = new Button(mainPanel, SWT.CHECK);
autoConnectOnFinishButton.setText(Messages.ConnectionProfileDetailsPage_Autoconnect_finish);
autoConnectOnFinishButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
autoConnectOnFinishButton.addSelectionListener(new SelectionListener() {

public void widgetDefaultSelected(SelectionEvent e) {
ScrolledConnectionProfileDetailsPage.this.setAutoConnectFinish(
ScrolledConnectionProfileDetailsPage.this.autoConnectOnFinishButton.getSelection());
}

public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
});
autoConnectOnFinishButton.setSelection(defaultAutoConnectOnFinishFlag);
}

if (_showPing) {
btnPing = new Button(mainPanel, SWT.NONE);
btnPing.addSelectionListener(new SelectionAdapter() {

public void widgetSelected(SelectionEvent e) {
testConnection();
}
});

GridData pingGD = new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.FILL_HORIZONTAL);
if (!_showAutoConnectOnFinish)
pingGD.horizontalSpan = 2;
btnPing.setLayoutData(pingGD);
btnPing.setText(ConnectivityUIPlugin.getDefault().getResourceString(
"ConnectionProfileDetailsPage.Button.TestConnection")); //$NON-NLS-1$

}

if (_showAutoConnect) {
autoConnectOnStartupButton = new Button(mainPanel, SWT.CHECK);
autoConnectOnStartupButton.setText(Messages.ConnectionProfileDetailsPage_Autoconnect_startup);
GridData acStartupGD = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
if (!_showPing)
acStartupGD.horizontalSpan = 2;
autoConnectOnStartupButton.setLayoutData(acStartupGD);
autoConnectOnStartupButton.addSelectionListener(new SelectionListener() {

public void widgetDefaultSelected(SelectionEvent e) {
ScrolledConnectionProfileDetailsPage.this.setAutoConnect(
ScrolledConnectionProfileDetailsPage.this.autoConnectOnStartupButton.getSelection());
}

public void widgetSelected(SelectionEvent e) {
widgetDefaultSelected(e);
}
});
}

if (this.getWizard() instanceof NewConnectionProfileWizard) {
NewConnectionProfileWizard wiz =
(NewConnectionProfileWizard) this.getWizard();
wiz.getProfilePage().setAutoConnectOnFinish(defaultAutoConnectOnFinishFlag);
}

scrolledComposite.sizeScrolledPanel();
}

protected void setPingButtonEnabled(boolean enabled)
{
if (btnPing != null && !btnPing.isDisposed())
{
btnPing.setEnabled(enabled);
}
}

protected void setPingButtonVisible(boolean visible)
{
if (btnPing != null && !btnPing.isDisposed())
{
btnPing.setVisible(visible);
}
}


private void setAutoConnectFinish ( boolean flag ) {
if (this.getWizard() instanceof NewConnectionProfileWizard) {
NewConnectionProfileWizard wiz =
(NewConnectionProfileWizard) this.getWizard();
wiz.getProfilePage().setAutoConnectOnFinish(flag);
}
}

private void setAutoConnect ( boolean flag ) {
if (this.getWizard() instanceof NewConnectionProfileWizard) {
NewConnectionProfileWizard wiz =
(NewConnectionProfileWizard) this.getWizard();
wiz.getProfilePage().setAutoConnect(flag);
}
}

protected void setAutoConnectOnFinishDefault( boolean flag ){
this.defaultAutoConnectOnFinishFlag = flag;
}

protected boolean getAutoConnectOnFinishDefault() {
return this.defaultAutoConnectOnFinishFlag;
}

protected void setShowAutoConnectOnFinish ( boolean flag ) {
this._showAutoConnectOnFinish = flag;
}

protected void setShowAutoConnect ( boolean flag ) {
this._showAutoConnect = flag;
}

/**
* Specifies whether to create the controls for the auto connect options on this page.
* @param flag true to create related controls; false otherwise
* @since DTP 1.7.2
*/
public void setCreateAutoConnectControls( boolean flag )
{
setAutoConnectOnFinishDefault( flag );
setShowAutoConnectOnFinish( flag );
setShowAutoConnect( flag );
}

protected void setShowPing ( boolean flag ) {
this._showPing = flag;
}
}

0 comments on commit 4f1ea0b

Please sign in to comment.