/*************************************************************************** * $Id$ ** * Copyright (C) 1992-2000 Trolltech AS. All rights reserved. ** * This file is part of an example program for Qt. This example * program may be used, distributed and modified without limitation. ** ****************************************************************************/ import org.kde.qt.*; class Wizard extends QWizard { protected QHBox page1, page2, page3; protected QLineEdit key, firstName, lastName, address, phone, email; protected QLabel lKey, lFirstName, lLastName, lAddress, lPhone, lEmail; Wizard( ) { this(null, null); } Wizard( QWidget parent, String name ) { super( parent, name, true ); setupPage1(); setupPage2(); setupPage3(); connect(this, SIGNAL("selected(String)"), this, SLOT("doShowPage(String)")); connect(finishButton(), SIGNAL("clicked()"), qApp(), SLOT("quit()")); key.setFocus(); } void setupPage1() { page1 = new QHBox( this ); page1.setSpacing(8); QLabel info = new QLabel( page1 ); info.setPalette( new QPalette(yellow()) ); info.setText( "Enter your personal\n" + "key here.\n\n" + "Your personal key\n" + "consists of 4 digits" ); info.setIndent( 8 ); info.setMaximumWidth( info.sizeHint().width() ); QVBox page = new QVBox( page1 ); QHBox row1 = new QHBox( page ); new QLabel( "Key:", row1 ); key = new QLineEdit( row1 ); key.setMaxLength( 4 ); key.setValidator( new QIntValidator( 1000, 9999, key ) ); connect( key, SIGNAL(" textChanged( String )"), this, SLOT(" keyChanged( String )") ); addPage( page1, "Personal Key" ); setNextEnabled( page1, false ); setHelpEnabled( page1, false ); } void setupPage2() { page2 = new QHBox( this ); page2.setSpacing(8); QLabel info = new QLabel( page2 ); info.setPalette( new QPalette(yellow()) ); info.setText( "\n" + " Enter your personal \n" + " data here. \n\n" + " The required fields are \n" + " First Name, Last Name \n" + " and E-Mail. \n" ); info.setIndent(8); info.setMaximumWidth( info.sizeHint().width() ); QVBox page = new QVBox( page2 ); QHBox row1 = new QHBox( page ); QHBox row2 = new QHBox( page ); QHBox row3 = new QHBox( page ); QHBox row4 = new QHBox( page ); QHBox row5 = new QHBox( page ); QLabel label1 = new QLabel( " First Name: ", row1 ); label1.setAlignment( Qt.AlignVCenter ); QLabel label2 = new QLabel( " Last Name: ", row2 ); label2.setAlignment( Qt.AlignVCenter ); QLabel label3 = new QLabel( " Address: ", row3 ); label3.setAlignment( Qt.AlignVCenter ); QLabel label4 = new QLabel( " Phone Number: ", row4 ); label4.setAlignment( Qt.AlignVCenter ); QLabel label5 = new QLabel( " E-Mail: ", row5 ); label5.setAlignment( Qt.AlignVCenter ); label1.setMinimumWidth( label4.sizeHint().width() ); label2.setMinimumWidth( label4.sizeHint().width() ); label3.setMinimumWidth( label4.sizeHint().width() ); label4.setMinimumWidth( label4.sizeHint().width() ); label5.setMinimumWidth( label4.sizeHint().width() ); firstName = new QLineEdit( row1 ); lastName = new QLineEdit( row2 ); address = new QLineEdit( row3 ); phone = new QLineEdit( row4 ); email = new QLineEdit( row5 ); connect( firstName, SIGNAL(" textChanged( String )"), this, SLOT(" dataChanged( String )") ); connect( lastName, SIGNAL(" textChanged( String )"), this, SLOT(" dataChanged( String )") ); connect( email, SIGNAL(" textChanged( String )"), this, SLOT(" dataChanged( String )") ); addPage( page2, "Personal Data" ); setHelpEnabled( page2, false ); } void setupPage3() { page3 = new QHBox( this ); page3.setSpacing(8); QLabel info = new QLabel( page3 ); info.setPalette( new QPalette(yellow()) ); info.setText( "\n" + " Look here to see of \n" + " the data you entered \n" + " is correct. To confirm, \n" + " press the [Finish] button \n" + " else go back to correct \n" + " mistakes." ); info.setIndent(8); info.setAlignment( AlignTop|AlignLeft ); info.setMaximumWidth( info.sizeHint().width() ); QVBox page = new QVBox( page3 ); QHBox row1 = new QHBox( page ); QHBox row2 = new QHBox( page ); QHBox row3 = new QHBox( page ); QHBox row4 = new QHBox( page ); QHBox row5 = new QHBox( page ); QHBox row6 = new QHBox( page ); QLabel label1 = new QLabel( " Personal Key: ", row1 ); label1.setAlignment( Qt.AlignVCenter ); QLabel label2 = new QLabel( " First Name: ", row2 ); label2.setAlignment( Qt.AlignVCenter ); QLabel label3 = new QLabel( " Last Name: ", row3 ); label3.setAlignment( Qt.AlignVCenter ); QLabel label4 = new QLabel( " Address: ", row4 ); label4.setAlignment( Qt.AlignVCenter ); QLabel label5 = new QLabel( " Phone Number: ", row5 ); label5.setAlignment( Qt.AlignVCenter ); QLabel label6 = new QLabel( " E-Mail: ", row6 ); label6.setAlignment( Qt.AlignVCenter ); label1.setMinimumWidth( label1.sizeHint().width() ); label2.setMinimumWidth( label1.sizeHint().width() ); label3.setMinimumWidth( label1.sizeHint().width() ); label4.setMinimumWidth( label1.sizeHint().width() ); label5.setMinimumWidth( label1.sizeHint().width() ); label6.setMinimumWidth( label1.sizeHint().width() ); lKey = new QLabel( row1 ); lFirstName = new QLabel( row2 ); lLastName = new QLabel( row3 ); lAddress = new QLabel( row4 ); lPhone = new QLabel( row5 ); lEmail = new QLabel( row6 ); addPage( page3, "Finish" ); setFinish( page3, true ); setHelpEnabled( page3, false ); } // The QWizard.showPage() virtual method callback isn't implemented in the java // bindings yet, so use the selected() signal connected to this slot 'doShowPage()' // instead.. public void doShowPage( String title ) { QWidget page = currentPage(); if ( page == page1 ) { } else if ( page == page2 ) { } else if ( page == page3 ) { lKey.setText( key.text() ); lFirstName.setText( firstName.text() ); lLastName.setText( lastName.text() ); lAddress.setText( address.text() ); lPhone.setText( phone.text() ); lEmail.setText( email.text() ); } if ( page == page1 ) { keyChanged( key.text() ); key.setFocus(); } else if ( page == page2 ) { dataChanged( firstName.text() ); firstName.setFocus(); } else if ( page == page3 ) { finishButton().setEnabled( true ); finishButton().setFocus(); } } void keyChanged( String text ) { StringBuffer t = new StringBuffer(text); int[] p = { 0 }; boolean on = ( key.validator().validate(t, p) == QValidator.Acceptable ); nextButton().setEnabled( on ); } void dataChanged( String s ) { if ( !firstName.text().equals("") && !lastName.text().equals("") && !email.text().equals("") ) nextButton().setEnabled( true ); else nextButton().setEnabled( false ); } }