diff options
Diffstat (limited to 'qtjava/javalib/examples/wizard')
-rw-r--r-- | qtjava/javalib/examples/wizard/Main.java | 29 | ||||
-rw-r--r-- | qtjava/javalib/examples/wizard/Wizard.java | 237 |
2 files changed, 266 insertions, 0 deletions
diff --git a/qtjava/javalib/examples/wizard/Main.java b/qtjava/javalib/examples/wizard/Main.java new file mode 100644 index 00000000..9f689214 --- /dev/null +++ b/qtjava/javalib/examples/wizard/Main.java @@ -0,0 +1,29 @@ +/*************************************************************************** +* $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.*; + +public class Main { + +public static void main(String[] args) +{ + QApplication a = new QApplication( args ); + + Wizard wizard = new Wizard(); + wizard.setCaption("Qt Example - Wizard"); + wizard.show(); + a.exec(); + return; +} + + static { + qtjava.initialize(); + } +} diff --git a/qtjava/javalib/examples/wizard/Wizard.java b/qtjava/javalib/examples/wizard/Wizard.java new file mode 100644 index 00000000..dd0659dc --- /dev/null +++ b/qtjava/javalib/examples/wizard/Wizard.java @@ -0,0 +1,237 @@ +/*************************************************************************** +* $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 ); +} +} |