You can not 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.3 KiB
238 lines
7.3 KiB
/***************************************************************************
|
|
* $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()"), tqApp(), 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 );
|
|
}
|
|
}
|