diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 90825e2392b2d70e43c7a25b8a3752299a933894 (patch) | |
tree | e33aa27f02b74604afbfd0ea4f1cfca8833d882a /qtjava/javalib/examples/demo/sql | |
download | tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtjava/javalib/examples/demo/sql')
-rw-r--r-- | qtjava/javalib/examples/demo/sql/BookForm.java | 191 | ||||
-rw-r--r-- | qtjava/javalib/examples/demo/sql/ConnectDialog.java | 138 | ||||
-rw-r--r-- | qtjava/javalib/examples/demo/sql/EditBookForm.java | 267 | ||||
-rw-r--r-- | qtjava/javalib/examples/demo/sql/Main.java | 20 |
4 files changed, 616 insertions, 0 deletions
diff --git a/qtjava/javalib/examples/demo/sql/BookForm.java b/qtjava/javalib/examples/demo/sql/BookForm.java new file mode 100644 index 00000000..67670357 --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/BookForm.java @@ -0,0 +1,191 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'book.ui' +** +** Created: Wed Aug 8 03:34:02 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +import org.kde.qt.*; + +public class BookForm extends QWidget { + QDataTable AuthorDataTable; + QDataTable BookDataTable; + QPushButton connectButton; + QPushButton editButton; + + QGridLayout BookFormLayout; + QSizePolicy policy_1; + QSizePolicy policy_2; + QSpacerItem spacer; + QSpacerItem spacer_2; + + QSqlCursor authorCursor; + QSqlCursor bookCursor; + +/* + * Constructs a BookForm which is a child of 'parent', with the + * name 'name' and widget flags set to 'f' + */ +BookForm( QWidget parent, String name, int fl ) +{ + super( parent, name, fl ); + if ( name == null ) + setName( "BookForm" ); + resize( 478, 498 ); + setCaption( trUtf8( "Book" ) ); + BookFormLayout = new QGridLayout( this ); + BookFormLayout.setSpacing( 6 ); + BookFormLayout.setMargin( 11 ); + + AuthorDataTable = new QDataTable( this, "AuthorDataTable" ); + AuthorDataTable.addColumn( "surname", trUtf8( "Surname", "" ) ); + AuthorDataTable.addColumn( "forename", trUtf8( "Forename", "" ) ); + AuthorDataTable.setSorting( true ); + AuthorDataTable.setConfirmDelete( true ); + AuthorDataTable.setSort( new String[] { "surname ASC", "forename ASC" } ); + + BookFormLayout.addMultiCellWidget( AuthorDataTable, 1, 1, 0, 2 ); + spacer = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + BookFormLayout.addMultiCell( spacer, 0, 0, 1, 2 ); + + BookDataTable = new QDataTable( this, "BookDataTable" ); + BookDataTable.addColumn( "title", trUtf8( "Title", "" ) ); + BookDataTable.addColumn( "price", trUtf8( "Price", "" ) ); + BookDataTable.addColumn( "notes", trUtf8( "Notes", "" ) ); + BookDataTable.setReadOnly( true ); + BookDataTable.setSorting( true ); + BookDataTable.setSort( new String[] { "title ASC" } ); + + BookFormLayout.addMultiCellWidget( BookDataTable, 2, 2, 0, 2 ); + spacer_2 = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + BookFormLayout.addMultiCell( spacer_2, 3, 3, 0, 1 ); + + connectButton = new QPushButton( this, "connectButton" ); + policy_1 = new QSizePolicy( (int)0, (int)0, connectButton.sizePolicy().hasHeightForWidth() ); + connectButton.setSizePolicy( policy_1 ); + connectButton.setText( trUtf8( "&Connect..." ) ); + + BookFormLayout.addWidget( connectButton, 0, 0 ); + + editButton = new QPushButton( this, "editButton" ); + editButton.setEnabled( false ); + policy_2 = new QSizePolicy( (int)0, (int)0, editButton.sizePolicy().hasHeightForWidth() ); + editButton.setSizePolicy( policy_2 ); + editButton.setText( trUtf8( "&Edit Books" ) ); + + BookFormLayout.addWidget( editButton, 3, 2 ); + + // database support + + + + + + // signals and slots connections + connect( editButton, SIGNAL( "clicked()" ), this, SLOT( "editClicked()" ) ); + connect( AuthorDataTable, SIGNAL( "primeInsert(QSqlRecord)" ), this, SLOT( "primeInsertAuthor(QSqlRecord)" ) ); + connect( AuthorDataTable, SIGNAL( "currentChanged(QSqlRecord)" ), this, SLOT( "newCurrentAuthor(QSqlRecord)" ) ); + connect( connectButton, SIGNAL( "clicked()" ), this, SLOT( "connectClicked()" ) ); + + // tab order + setTabOrder( connectButton, editButton ); + init(); +} + +BookForm( QWidget parent, String name ) +{ + this(parent, name, 0); +} + +BookForm( QWidget parent ) +{ + this(parent, null, 0); +} + +BookForm( ) +{ + this(null, null, 0); +} + +void init() +{ +} + +public void destroy() +{ +} + +void editClicked() +{ + EditBookForm dialog = new EditBookForm( this, "Edit Book Form", true, 0 ); + QSqlCursor cur = new QSqlCursor( "book" ); + dialog.BookDataBrowser.setSqlCursor( cur ); + dialog.BookDataBrowser.setFilter( BookDataTable.filter() ); + String[] sort = new String[BookDataTable.sort().size()]; + sort = (String[]) BookDataTable.sort().toArray(sort); + dialog.BookDataBrowser.setSort(QSqlIndex.fromStringList( + sort, cur ) ); + dialog.BookDataBrowser.refresh(); + int i = BookDataTable.currentRow(); + if ( i == -1 ) i = 0; // Always use the first row + dialog.BookDataBrowser.seek( i ); + dialog.exec(); + dialog = null; + BookDataTable.refresh(); +} + +void connectClicked() +{ + boolean ok = false; + ConnectDialog dialog = new ConnectDialog( this, "Connect", true, 0 ); + String[] drivers = new String[QSqlDatabase.drivers().size()];; + drivers = (String[]) QSqlDatabase.drivers().toArray(drivers); + dialog.comboDriver.insertStringList( drivers ); + dialog.editDatabase.setText( "book" ); + if ( dialog.exec() == QDialog.Accepted ) { + // QSqlDatabase.removeDatabase( QSqlDatabase.defaultConnection() ); + QSqlDatabase db = QSqlDatabase.addDatabase( dialog.comboDriver.currentText() ); + db.setDatabaseName( dialog.editDatabase.text() ); + db.setUserName( dialog.editUsername.text() ); + db.setPassword( dialog.editPassword.text() ); + db.setHostName( dialog.editHostname.text() ); + if ( !db.open() ) { + //## warning? + ok= false; + } else + ok = true; + } + if ( !ok ) { + editButton.setEnabled( false ); + BookDataTable.setSqlCursor( (QSqlCursor) null ); + AuthorDataTable.setSqlCursor( (QSqlCursor) null ); + } else { + editButton.setEnabled( true ); + authorCursor = new QSqlCursor( "author" ); + AuthorDataTable.setSqlCursor( authorCursor, false, true ); + bookCursor = new QSqlCursor( "book" ); + BookDataTable.setSqlCursor( bookCursor, false, true ); + AuthorDataTable.refresh( QDataTable.RefreshAll ); + BookDataTable.refresh( QDataTable.RefreshAll ); + } + dialog = null; +} + +void newCurrentAuthor(QSqlRecord author) +{ + BookDataTable.setFilter( "authorid=" + author.value( "id" ).toString() ); + BookDataTable.refresh(); +} + +void primeInsertAuthor(QSqlRecord buffer) +{ + QSqlQuery q = new QSqlQuery(); + q.exec( "UPDATE sequence SET sequence = sequence + 1 WHERE tablename='author';" ); + q.exec( "SELECT sequence FROM sequence WHERE tablename='author';" ); + if ( q.next() ) { + buffer.setValue( "id", q.value( 0 ) ); + } +} + +} diff --git a/qtjava/javalib/examples/demo/sql/ConnectDialog.java b/qtjava/javalib/examples/demo/sql/ConnectDialog.java new file mode 100644 index 00000000..bbd17391 --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/ConnectDialog.java @@ -0,0 +1,138 @@ +/**************************************************************************** +** Form implementation generated from reading ui file 'connect.ui' +** +** Created: Wed Aug 8 03:35:48 2001 +** by: The User Interface Compiler (uic) +** +** WARNING! All changes made in this file will be lost! +****************************************************************************/ +import org.kde.qt.*; + +public class ConnectDialog extends QDialog { + QLineEdit editDatabase; + QLabel TextLabel3; + QLineEdit editPassword; + QLabel TextLabel4; + QLabel TextLabel4_2; + QLabel TextLabel2; + QLabel TextLabel5; + QComboBox comboDriver; + QLineEdit editHostname; + QLineEdit editUsername; + QPushButton PushButton1; + QPushButton PushButton2; + + QGridLayout ConnectDialogLayout; + QSpacerItem spacer; + +/* + * Constructs a ConnectDialog 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. + */ +ConnectDialog( QWidget parent, String name, boolean modal, int fl ) +{ + super( parent, name, modal, fl ); + if ( name == null ) + setName( "ConnectDialog" ); + resize( 294, 207 ); + setCaption( trUtf8( "Connect..." ) ); + ConnectDialogLayout = new QGridLayout( this ); + ConnectDialogLayout.setSpacing( 6 ); + ConnectDialogLayout.setMargin( 11 ); + + editDatabase = new QLineEdit( this, "editDatabase" ); + + ConnectDialogLayout.addMultiCellWidget( editDatabase, 1, 1, 2, 3 ); + + TextLabel3 = new QLabel( this, "TextLabel3" ); + TextLabel3.setText( trUtf8( "Database Name:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel3, 1, 1, 0, 1 ); + + editPassword = new QLineEdit( this, "editPassword" ); + editPassword.setEchoMode( QLineEdit.Password ); + + ConnectDialogLayout.addMultiCellWidget( editPassword, 3, 3, 2, 3 ); + + TextLabel4 = new QLabel( this, "TextLabel4" ); + TextLabel4.setText( trUtf8( "&Username:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel4, 2, 2, 0, 1 ); + + TextLabel4_2 = new QLabel( this, "TextLabel4_2" ); + TextLabel4_2.setText( trUtf8( "&Password:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel4_2, 3, 3, 0, 1 ); + + TextLabel2 = new QLabel( this, "TextLabel2" ); + TextLabel2.setText( trUtf8( "D&river" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel2, 0, 0, 0, 1 ); + + TextLabel5 = new QLabel( this, "TextLabel5" ); + TextLabel5.setText( trUtf8( "&Hostname:" ) ); + + ConnectDialogLayout.addMultiCellWidget( TextLabel5, 4, 4, 0, 1 ); + + comboDriver = new QComboBox( false, this, "comboDriver" ); + comboDriver.setEditable( true ); + + ConnectDialogLayout.addMultiCellWidget( comboDriver, 0, 0, 2, 3 ); + + editHostname = new QLineEdit( this, "editHostname" ); + + ConnectDialogLayout.addMultiCellWidget( editHostname, 4, 4, 2, 3 ); + + editUsername = new QLineEdit( this, "editUsername" ); + + ConnectDialogLayout.addMultiCellWidget( editUsername, 2, 2, 2, 3 ); + + PushButton1 = new QPushButton( this, "PushButton1" ); + PushButton1.setText( trUtf8( "&OK" ) ); + PushButton1.setDefault( true ); + + ConnectDialogLayout.addMultiCellWidget( PushButton1, 5, 5, 1, 2 ); + + PushButton2 = new QPushButton( this, "PushButton2" ); + PushButton2.setText( trUtf8( "&Cancel" ) ); + + ConnectDialogLayout.addWidget( PushButton2, 5, 3 ); + spacer = new QSpacerItem( 20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ); + ConnectDialogLayout.addItem( spacer, 5, 0 ); + + + + + + // signals and slots connections + connect( PushButton1, SIGNAL( "clicked()" ), this, SLOT( "accept()" ) ); + connect( PushButton2, SIGNAL( "clicked()" ), this, SLOT( "reject()" ) ); + + // tab order + setTabOrder( comboDriver, editDatabase ); + setTabOrder( editDatabase, editUsername ); + setTabOrder( editUsername, editPassword ); + setTabOrder( editPassword, editHostname ); + setTabOrder( editHostname, PushButton1 ); + setTabOrder( PushButton1, PushButton2 ); + + // buddies + TextLabel4.setBuddy( editUsername ); + TextLabel4_2.setBuddy( editPassword ); + TextLabel2.setBuddy( comboDriver ); + TextLabel5.setBuddy( editHostname ); + init(); +} + +void init() +{ +} + +public void destroy() +{ +} + +} diff --git a/qtjava/javalib/examples/demo/sql/EditBookForm.java b/qtjava/javalib/examples/demo/sql/EditBookForm.java new file mode 100644 index 00000000..6c07176f --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/EditBookForm.java @@ -0,0 +1,267 @@ +/**************************************************************************** +** 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.kde.qt.*; +import java.util.HashMap; + +public class EditBookForm extends QDialog { + QDataBrowser BookDataBrowser; + QLabel labelPrice; + QLabel labelTitle; + QLineEdit QLineEditTitle; + QLineEdit QLineEditPrice; + QPushButton PushButtonInsert; + QPushButton PushButtonUpdate; + QPushButton PushButtonDelete; + QPushButton PushButtonClose; + QPushButton PushButtonFirst; + QPushButton PushButtonPrev; + QPushButton PushButtonNext; + QPushButton PushButtonLast; + QLabel TextLabel1; + QComboBox ComboBoxAuthor; + + QVBoxLayout EditBookFormLayout; + QGridLayout BookDataBrowserLayout; + QGridLayout Layout2; + QHBoxLayout Layout6; + QHBoxLayout Layout3; + QHBoxLayout Layout6_2; + + HashMap authorMap; + QSizePolicy policy_1; + QSqlForm 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( QWidget 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 QVBoxLayout( this ); + EditBookFormLayout.setSpacing( 6 ); + EditBookFormLayout.setMargin( 11 ); + + BookDataBrowser = new QDataBrowser( this, "BookDataBrowser" ); + BookDataBrowserLayout = new QGridLayout( BookDataBrowser ); + BookDataBrowser.setSort( new String[] { "title ASC" } ); + BookDataBrowserLayout.setSpacing( 6 ); + BookDataBrowserLayout.setMargin( 11 ); + + Layout2 = new QGridLayout(); + Layout2.setSpacing( 6 ); + Layout2.setMargin( 0 ); + + labelPrice = new QLabel( BookDataBrowser, "labelPrice" ); + labelPrice.setText( trUtf8( "Price" ) ); + + Layout2.addWidget( labelPrice, 1, 0 ); + + labelTitle = new QLabel( BookDataBrowser, "labelTitle" ); + labelTitle.setText( trUtf8( "Title" ) ); + + Layout2.addWidget( labelTitle, 0, 0 ); + + QLineEditTitle = new QLineEdit( BookDataBrowser, "QLineEditTitle" ); + + Layout2.addWidget( QLineEditTitle, 0, 1 ); + + QLineEditPrice = new QLineEdit( BookDataBrowser, "QLineEditPrice" ); + + Layout2.addWidget( QLineEditPrice, 1, 1 ); + + BookDataBrowserLayout.addLayout( Layout2, 0, 0 ); + + Layout6 = new QHBoxLayout(); + Layout6.setSpacing( 6 ); + Layout6.setMargin( 0 ); + + PushButtonInsert = new QPushButton( BookDataBrowser, "PushButtonInsert" ); + PushButtonInsert.setText( trUtf8( "&Insert" ) ); + Layout6.addWidget( PushButtonInsert ); + + PushButtonUpdate = new QPushButton( BookDataBrowser, "PushButtonUpdate" ); + PushButtonUpdate.setText( trUtf8( "&Update" ) ); + PushButtonUpdate.setDefault( true ); + Layout6.addWidget( PushButtonUpdate ); + + PushButtonDelete = new QPushButton( BookDataBrowser, "PushButtonDelete" ); + PushButtonDelete.setText( trUtf8( "&Delete" ) ); + Layout6.addWidget( PushButtonDelete ); + + PushButtonClose = new QPushButton( BookDataBrowser, "PushButtonClose" ); + PushButtonClose.setText( trUtf8( "&Close" ) ); + Layout6.addWidget( PushButtonClose ); + + BookDataBrowserLayout.addLayout( Layout6, 3, 0 ); + + Layout3 = new QHBoxLayout(); + Layout3.setSpacing( 6 ); + Layout3.setMargin( 0 ); + + PushButtonFirst = new QPushButton( BookDataBrowser, "PushButtonFirst" ); + PushButtonFirst.setText( trUtf8( "|< &First" ) ); + Layout3.addWidget( PushButtonFirst ); + + PushButtonPrev = new QPushButton( BookDataBrowser, "PushButtonPrev" ); + PushButtonPrev.setText( trUtf8( "<< &Prev" ) ); + Layout3.addWidget( PushButtonPrev ); + + PushButtonNext = new QPushButton( BookDataBrowser, "PushButtonNext" ); + PushButtonNext.setText( trUtf8( "&Next >>" ) ); + Layout3.addWidget( PushButtonNext ); + + PushButtonLast = new QPushButton( BookDataBrowser, "PushButtonLast" ); + PushButtonLast.setText( trUtf8( "&Last >|" ) ); + Layout3.addWidget( PushButtonLast ); + + BookDataBrowserLayout.addLayout( Layout3, 2, 0 ); + + Layout6_2 = new QHBoxLayout(); + Layout6_2.setSpacing( 6 ); + Layout6_2.setMargin( 0 ); + + TextLabel1 = new QLabel( BookDataBrowser, "TextLabel1" ); + TextLabel1.setText( trUtf8( "Author" ) ); + Layout6_2.addWidget( TextLabel1 ); + + ComboBoxAuthor = new QComboBox( false, BookDataBrowser, "ComboBoxAuthor" ); + policy_1 = new QSizePolicy( (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 QSqlForm( this, "BookDataBrowserForm" ); + BookDataBrowserForm.insert( QLineEditTitle, "title" ); + BookDataBrowserForm.insert( QLineEditPrice, "price" ); + BookDataBrowser.setForm( BookDataBrowserForm ); + + + + + + // signals and slots connections + connect( PushButtonFirst, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "first()" ) ); + connect( BookDataBrowser, SIGNAL( "firstRecordAvailable( boolean )" ), PushButtonFirst, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonPrev, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "prev()" ) ); + connect( BookDataBrowser, SIGNAL( "prevRecordAvailable( boolean )" ), PushButtonPrev, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonNext, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "next()" ) ); + connect( BookDataBrowser, SIGNAL( "nextRecordAvailable( boolean )" ), PushButtonNext, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonLast, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "last()" ) ); + connect( BookDataBrowser, SIGNAL( "lastRecordAvailable( boolean )" ), PushButtonLast, SLOT( "setEnabled(boolean)" ) ); + connect( PushButtonInsert, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "insert()" ) ); + connect( PushButtonUpdate, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "update()" ) ); + connect( PushButtonDelete, SIGNAL( "clicked()" ), BookDataBrowser, SLOT( "del()" ) ); + connect( PushButtonClose, SIGNAL( "clicked()" ), this, SLOT( "accept()" ) ); + connect( BookDataBrowser, SIGNAL( "primeUpdate(QSqlRecord)" ), this, SLOT( "primeUpdateBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "beforeUpdate(QSqlRecord)" ), this, SLOT( "beforeUpdateBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "beforeInsert(QSqlRecord)" ), this, SLOT( "beforeUpdateBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "primeInsert(QSqlRecord)" ), this, SLOT( "primeInsertBook(QSqlRecord)" ) ); + connect( BookDataBrowser, SIGNAL( "primeInsert(QSqlRecord)" ), this, SLOT( "primeInsertBook(QSqlRecord)" ) ); + + // tab order + setTabOrder( QLineEditTitle, QLineEditPrice ); + setTabOrder( QLineEditPrice, 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 ) { + QSqlCursor cursor = new QSqlCursor( "book" ); + BookDataBrowser.setSqlCursor( cursor, true ); + BookDataBrowser.refresh(); + BookDataBrowser.first(); + } + } + super.polish(); +} + +void beforeUpdateBook(QSqlRecord buffer) +{ + int[] id = { 0 }; + mapAuthor( ComboBoxAuthor.currentText(), id, false ); + buffer.setValue( "authorid", new QVariant(id[0]) ); +} + +void mapAuthor(String name, int[] id, boolean populate) +{ +// if ( populate ) +// authorMap[ name ] = id; +// else +// id[0] = authorMap[ name ]; +} + +void primeInsertBook(QSqlRecord buffer) +{ + QSqlQuery q = new QSqlQuery(); + 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(QSqlRecord buffer) +{ + // Who is this book's author? + QSqlQuery query = new QSqlQuery( "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(); + QSqlQuery query = new QSqlQuery( "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() +{ +} + +} diff --git a/qtjava/javalib/examples/demo/sql/Main.java b/qtjava/javalib/examples/demo/sql/Main.java new file mode 100644 index 00000000..1bf81c88 --- /dev/null +++ b/qtjava/javalib/examples/demo/sql/Main.java @@ -0,0 +1,20 @@ +import org.kde.qt.*; + +public class Main { + + public static void main(String[] args) + { + QApplication a = new QApplication(args); + BookForm form = new BookForm(); + + a.setMainWidget( form ); + form.show(); + a.exec(); + + return; + } + + static { + qtjava.initialize(); + } +} |