/*************************************************************************** * $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 TQWizard { protected TQHBox page1, page2, page3; protected TQLineEdit key, firstName, lastName, address, phone, email; protected TQLabel lKey, lFirstName, lLastName, lAddress, lPhone, lEmail; Wizard( ) { this(null, null); } Wizard( TQWidget 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 TQHBox( this ); page1.setSpacing(8); TQLabel info = new TQLabel( page1 ); info.setPalette( new TQPalette(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() ); TQVBox page = new TQVBox( page1 ); TQHBox row1 = new TQHBox( page ); new TQLabel( "Key:", row1 ); key = new TQLineEdit( row1 ); key.setMaxLength( 4 ); key.setValidator( new TQIntValidator( 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 TQHBox( this ); page2.setSpacing(8); TQLabel info = new TQLabel( page2 ); info.setPalette( new TQPalette(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() ); TQVBox page = new TQVBox( page2 ); TQHBox row1 = new TQHBox( page ); TQHBox row2 = new TQHBox( page ); TQHBox row3 = new TQHBox( page ); TQHBox row4 = new TQHBox( page ); TQHBox row5 = new TQHBox( page ); TQLabel label1 = new TQLabel( " First Name: ", row1 ); label1.setAlignment( Qt.AlignVCenter ); TQLabel label2 = new TQLabel( " Last Name: ", row2 ); label2.setAlignment( Qt.AlignVCenter ); TQLabel label3 = new TQLabel( " Address: ", row3 ); label3.setAlignment( Qt.AlignVCenter ); TQLabel label4 = new TQLabel( " Phone Number: ", row4 ); label4.setAlignment( Qt.AlignVCenter ); TQLabel label5 = new TQLabel( " 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 TQLineEdit( row1 ); lastName = new TQLineEdit( row2 ); address = new TQLineEdit( row3 ); phone = new TQLineEdit( row4 ); email = new TQLineEdit( 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 TQHBox( this ); page3.setSpacing(8); TQLabel info = new TQLabel( page3 ); info.setPalette( new TQPalette(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() ); TQVBox page = new TQVBox( page3 ); TQHBox row1 = new TQHBox( page ); TQHBox row2 = new TQHBox( page ); TQHBox row3 = new TQHBox( page ); TQHBox row4 = new TQHBox( page ); TQHBox row5 = new TQHBox( page ); TQHBox row6 = new TQHBox( page ); TQLabel label1 = new TQLabel( " Personal Key: ", row1 ); label1.setAlignment( Qt.AlignVCenter ); TQLabel label2 = new TQLabel( " First Name: ", row2 ); label2.setAlignment( Qt.AlignVCenter ); TQLabel label3 = new TQLabel( " Last Name: ", row3 ); label3.setAlignment( Qt.AlignVCenter ); TQLabel label4 = new TQLabel( " Address: ", row4 ); label4.setAlignment( Qt.AlignVCenter ); TQLabel label5 = new TQLabel( " Phone Number: ", row5 ); label5.setAlignment( Qt.AlignVCenter ); TQLabel label6 = new TQLabel( " 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 TQLabel( row1 ); lFirstName = new TQLabel( row2 ); lLastName = new TQLabel( row3 ); lAddress = new TQLabel( row4 ); lPhone = new TQLabel( row5 ); lEmail = new TQLabel( row6 ); addPage( page3, "Finish" ); setFinish( page3, true ); setHelpEnabled( page3, false ); } // The TQWizard.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 ) { TQWidget 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) == TQValidator.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 ); } }