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.
tdebindings/qtjava/javalib/examples/wizard/Wizard.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 );
}
}