/***************************************************************************** * Copyright (c) 2006, 2007 g-Eclipse Consortium * 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 * * Initial development of the original code was made for the * g-Eclipse project founded by European Union * project number: FP6-IST-034327 http://www.geclipse.eu/ * * Contributors: * Thomas Koeckerbauer GUP, JKU - initial API and implementation *****************************************************************************/ package eu.geclipse.terminal.ssh.internal; import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.wizard.WizardPage; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; class SSHConnectionWizardPage extends WizardPage implements Listener { private SSHConnectionComposite composite; private String preSelectedHostname = null; protected SSHConnectionWizardPage( final String pageName ) { super( pageName ); } public void createControl( final Composite parent ) { this.composite = new SSHConnectionComposite( parent, SWT.NONE, this, this.preSelectedHostname ); setPageComplete( false ); setControl( this.composite ); IStatus status = this.composite.getStatus(); setPageComplete( status.getSeverity() != IStatus.ERROR ); } void setPreselectedHostname( final String hostname ) { this.preSelectedHostname = hostname; } @Override public String getTitle() { return Messages.getString( "SSHConnectionWizardPage.ssh" ); //$NON-NLS-1$ } @Override public String getDescription() { return Messages.getString( "SSHConnectionWizardPage.description" ); //$NON-NLS-1$ } public void handleEvent( final Event event ) { validateInput(); getWizard().getContainer().updateButtons(); } private void validateInput() { IStatus status = this.composite.getStatus(); applyToStatusLine( status ); setPageComplete( status.getSeverity() != IStatus.ERROR ); } private void applyToStatusLine( final IStatus status ) { String message = status.getMessage(); if ( message.length() == 0 ) message = null; switch ( status.getSeverity() ) { case IStatus.OK: setErrorMessage( null ); setMessage( message ); break; case IStatus.WARNING: setErrorMessage( null ); setMessage( message, IMessageProvider.WARNING ); break; case IStatus.INFO: setErrorMessage( null ); setMessage( message, IMessageProvider.INFORMATION ); break; default: setErrorMessage( message ); setMessage( null ); break; } } SSHConnectionInfo getConnectionInfo() { return this.composite.getConnectionInfo(); } }