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/demo/sql/EditBookForm.java

268 lines
9.4 KiB

/****************************************************************************
** 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()
{
}
}