/**************************************************************************** ** Form implementation generated from reading ui file 'editbook.ui' ** ** Created: Wed Aug 8 03:37:45 2001 ** by: The User Interface Compiler (uic) ** ** WARNING! All changes made in this file will be lost! ****************************************************************************/ import org.trinitydesktop.qt.*; import java.util.HashMap; public class EditBookForm extends TQDialog { TQDataBrowser BookDataBrowser; TQLabel labelPrice; TQLabel labelTitle; TQLineEdit TQLineEditTitle; TQLineEdit TQLineEditPrice; TQPushButton PushButtonInsert; TQPushButton PushButtonUpdate; TQPushButton PushButtonDelete; TQPushButton PushButtonClose; TQPushButton PushButtonFirst; TQPushButton PushButtonPrev; TQPushButton PushButtonNext; TQPushButton PushButtonLast; TQLabel TextLabel1; TQComboBox ComboBoxAuthor; TQVBoxLayout EditBookFormLayout; TQGridLayout BookDataBrowserLayout; TQGridLayout Layout2; TQHBoxLayout Layout6; TQHBoxLayout Layout3; TQHBoxLayout Layout6_2; HashMap authorMap; TQSizePolicy policy_1; TQSqlForm BookDataBrowserForm; /* * Constructs a EditBookForm which is a child of 'parent', with the * name 'name' and widget flags set to 'f' * * The dialog will by default be modeless, unless you set 'modal' to * true to construct a modal dialog. */ EditBookForm( TQWidget parent, String name, boolean modal, int fl ) { super( parent, name, modal, fl ); if ( name == null ) setName( "EditBookForm" ); resize( 524, 371 ); setCaption( trUtf8( "Edit Books" ) ); EditBookFormLayout = new TQVBoxLayout( this ); EditBookFormLayout.setSpacing( 6 ); EditBookFormLayout.setMargin( 11 ); BookDataBrowser = new TQDataBrowser( this, "BookDataBrowser" ); BookDataBrowserLayout = new TQGridLayout( BookDataBrowser ); BookDataBrowser.setSort( new String[] { "title ASC" } ); BookDataBrowserLayout.setSpacing( 6 ); BookDataBrowserLayout.setMargin( 11 ); Layout2 = new TQGridLayout(); Layout2.setSpacing( 6 ); Layout2.setMargin( 0 ); labelPrice = new TQLabel( BookDataBrowser, "labelPrice" ); labelPrice.setText( trUtf8( "Price" ) ); Layout2.addWidget( labelPrice, 1, 0 ); labelTitle = new TQLabel( BookDataBrowser, "labelTitle" ); labelTitle.setText( trUtf8( "Title" ) ); Layout2.addWidget( labelTitle, 0, 0 ); TQLineEditTitle = new TQLineEdit( BookDataBrowser, "TQLineEditTitle" ); Layout2.addWidget( TQLineEditTitle, 0, 1 ); TQLineEditPrice = new TQLineEdit( BookDataBrowser, "TQLineEditPrice" ); Layout2.addWidget( TQLineEditPrice, 1, 1 ); BookDataBrowserLayout.addLayout( Layout2, 0, 0 ); Layout6 = new TQHBoxLayout(); Layout6.setSpacing( 6 ); Layout6.setMargin( 0 ); PushButtonInsert = new TQPushButton( BookDataBrowser, "PushButtonInsert" ); PushButtonInsert.setText( trUtf8( "&Insert" ) ); Layout6.addWidget( PushButtonInsert ); PushButtonUpdate = new TQPushButton( BookDataBrowser, "PushButtonUpdate" ); PushButtonUpdate.setText( trUtf8( "&Update" ) ); PushButtonUpdate.setDefault( true ); Layout6.addWidget( PushButtonUpdate ); PushButtonDelete = new TQPushButton( BookDataBrowser, "PushButtonDelete" ); PushButtonDelete.setText( trUtf8( "&Delete" ) ); Layout6.addWidget( PushButtonDelete ); PushButtonClose = new TQPushButton( BookDataBrowser, "PushButtonClose" ); PushButtonClose.setText( trUtf8( "&Close" ) ); Layout6.addWidget( PushButtonClose ); BookDataBrowserLayout.addLayout( Layout6, 3, 0 ); Layout3 = new TQHBoxLayout(); Layout3.setSpacing( 6 ); Layout3.setMargin( 0 ); PushButtonFirst = new TQPushButton( BookDataBrowser, "PushButtonFirst" ); PushButtonFirst.setText( trUtf8( "|< &First" ) ); Layout3.addWidget( PushButtonFirst ); PushButtonPrev = new TQPushButton( BookDataBrowser, "PushButtonPrev" ); PushButtonPrev.setText( trUtf8( "<< &Prev" ) ); Layout3.addWidget( PushButtonPrev ); PushButtonNext = new TQPushButton( BookDataBrowser, "PushButtonNext" ); PushButtonNext.setText( trUtf8( "&Next >>" ) ); Layout3.addWidget( PushButtonNext ); PushButtonLast = new TQPushButton( BookDataBrowser, "PushButtonLast" ); PushButtonLast.setText( trUtf8( "&Last >|" ) ); Layout3.addWidget( PushButtonLast ); BookDataBrowserLayout.addLayout( Layout3, 2, 0 ); Layout6_2 = new TQHBoxLayout(); Layout6_2.setSpacing( 6 ); Layout6_2.setMargin( 0 ); TextLabel1 = new TQLabel( BookDataBrowser, "TextLabel1" ); TextLabel1.setText( trUtf8( "Author" ) ); Layout6_2.addWidget( TextLabel1 ); ComboBoxAuthor = new TQComboBox( false, BookDataBrowser, "ComboBoxAuthor" ); policy_1 = new TQSizePolicy( (int)7, (int)0, ComboBoxAuthor.sizePolicy().hasHeightForWidth() ); ComboBoxAuthor.setSizePolicy( policy_1 ); Layout6_2.addWidget( ComboBoxAuthor ); BookDataBrowserLayout.addLayout( Layout6_2, 1, 0 ); EditBookFormLayout.addWidget( BookDataBrowser ); // database support BookDataBrowserForm = new TQSqlForm( this, "BookDataBrowserForm" ); BookDataBrowserForm.insert( TQLineEditTitle, "title" ); BookDataBrowserForm.insert( TQLineEditPrice, "price" ); BookDataBrowser.setForm( BookDataBrowserForm ); // signals and slots connections connect( PushButtonFirst, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "first()" ) ); connect( BookDataBrowser, TQ_SIGNAL( "firstRecordAvailable( boolean )" ), PushButtonFirst, TQ_SLOT( "setEnabled(boolean)" ) ); connect( PushButtonPrev, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "prev()" ) ); connect( BookDataBrowser, TQ_SIGNAL( "prevRecordAvailable( boolean )" ), PushButtonPrev, TQ_SLOT( "setEnabled(boolean)" ) ); connect( PushButtonNext, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "next()" ) ); connect( BookDataBrowser, TQ_SIGNAL( "nextRecordAvailable( boolean )" ), PushButtonNext, TQ_SLOT( "setEnabled(boolean)" ) ); connect( PushButtonLast, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "last()" ) ); connect( BookDataBrowser, TQ_SIGNAL( "lastRecordAvailable( boolean )" ), PushButtonLast, TQ_SLOT( "setEnabled(boolean)" ) ); connect( PushButtonInsert, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "insert()" ) ); connect( PushButtonUpdate, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "update()" ) ); connect( PushButtonDelete, TQ_SIGNAL( "clicked()" ), BookDataBrowser, TQ_SLOT( "del()" ) ); connect( PushButtonClose, TQ_SIGNAL( "clicked()" ), this, TQ_SLOT( "accept()" ) ); connect( BookDataBrowser, TQ_SIGNAL( "primeUpdate(TQSqlRecord)" ), this, TQ_SLOT( "primeUpdateBook(TQSqlRecord)" ) ); connect( BookDataBrowser, TQ_SIGNAL( "beforeUpdate(TQSqlRecord)" ), this, TQ_SLOT( "beforeUpdateBook(TQSqlRecord)" ) ); connect( BookDataBrowser, TQ_SIGNAL( "beforeInsert(TQSqlRecord)" ), this, TQ_SLOT( "beforeUpdateBook(TQSqlRecord)" ) ); connect( BookDataBrowser, TQ_SIGNAL( "primeInsert(TQSqlRecord)" ), this, TQ_SLOT( "primeInsertBook(TQSqlRecord)" ) ); connect( BookDataBrowser, TQ_SIGNAL( "primeInsert(TQSqlRecord)" ), this, TQ_SLOT( "primeInsertBook(TQSqlRecord)" ) ); // tab order setTabOrder( TQLineEditTitle, TQLineEditPrice ); setTabOrder( TQLineEditPrice, ComboBoxAuthor ); setTabOrder( ComboBoxAuthor, PushButtonFirst ); setTabOrder( PushButtonFirst, PushButtonPrev ); setTabOrder( PushButtonPrev, PushButtonNext ); setTabOrder( PushButtonNext, PushButtonLast ); setTabOrder( PushButtonLast, PushButtonInsert ); setTabOrder( PushButtonInsert, PushButtonUpdate ); setTabOrder( PushButtonUpdate, PushButtonDelete ); setTabOrder( PushButtonDelete, PushButtonClose ); init(); } /* * Widget polish. Reimplemented to handle * default data browser initialization */ public void polish() { if ( BookDataBrowser != null ) { if ( BookDataBrowser.sqlCursor() == null ) { TQSqlCursor cursor = new TQSqlCursor( "book" ); BookDataBrowser.setSqlCursor( cursor, true ); BookDataBrowser.refresh(); BookDataBrowser.first(); } } super.polish(); } void beforeUpdateBook(TQSqlRecord buffer) { int[] id = { 0 }; mapAuthor( ComboBoxAuthor.currentText(), id, false ); buffer.setValue( "authorid", new TQVariant(id[0]) ); } void mapAuthor(String name, int[] id, boolean populate) { // if ( populate ) // authorMap[ name ] = id; // else // id[0] = authorMap[ name ]; } void primeInsertBook(TQSqlRecord buffer) { TQSqlQuery q = new TQSqlQuery(); q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='book';" ); q.exec( "SELECT sequence FROM sequence WHERE tablename='book';" ); if ( q.next() ) { buffer.setValue( "id", q.value( 0 ) ); } } void primeUpdateBook(TQSqlRecord buffer) { // Who is this book's author? TQSqlQuery query = new TQSqlQuery( "SELECT surname FROM author WHERE id=" + buffer.value( "authorid" ).toString() + ";" ); String author = ""; if ( query.next() ) author = query.value( 0 ).toString(); // Set the ComboBox to the right author for ( int i = 0; i < ComboBoxAuthor.count(); i++ ) { if ( ComboBoxAuthor.text( i ) == author ) { ComboBoxAuthor.setCurrentItem( i ) ; break; } } } void init() { authorMap = new HashMap(); TQSqlQuery query = new TQSqlQuery( "SELECT surname, id FROM author ORDER BY surname;" ); while ( query.next() ) { ComboBoxAuthor.insertItem( query.value( 0 ).toString() ); int[] id = new int[1]; id[0] = query.value( 1 ).toInt(); mapAuthor( query.value( 0 ).toString(), id, true ); } } public void destroy() { } }