You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
238 lines
7.2 KiB
Java
238 lines
7.2 KiB
Java
/***************************************************************************
|
|
* $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 );
|
|
}
|
|
}
|