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

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()"), 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 );
}
}