diff options
Diffstat (limited to 'qtjava/javalib/examples/checklists')
-rw-r--r-- | qtjava/javalib/examples/checklists/CheckLists.java | 171 | ||||
-rw-r--r-- | qtjava/javalib/examples/checklists/Main.java | 31 |
2 files changed, 202 insertions, 0 deletions
diff --git a/qtjava/javalib/examples/checklists/CheckLists.java b/qtjava/javalib/examples/checklists/CheckLists.java new file mode 100644 index 00000000..5dc42300 --- /dev/null +++ b/qtjava/javalib/examples/checklists/CheckLists.java @@ -0,0 +1,171 @@ +/*************************************************************************** +* $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.*; +import java.util.*; + +class CheckLists extends TQWidget +{ + +protected TQListView lv1, lv2; +protected TQLabel label; + +/* + Constructor + * + Create all child widgets of the CheckList Widget + */ + +CheckLists( ) +{ + this(null, null); +} + +CheckLists( TQWidget parent, String name ) +{ + super( parent, name ); + TQHBoxLayout lay = new TQHBoxLayout( this ); + lay.setMargin( 5 ); + + // create a widget which layouts its childs in a column + TQVBoxLayout vbox1 = new TQVBoxLayout( lay ); + vbox1.setMargin( 5 ); + + // First child: a Label + vbox1.addWidget( new TQLabel( "Check some items!", this ) ); + + // Second child: the ListView + lv1 = new TQListView( this ); + vbox1.addWidget( lv1 ); + lv1.addColumn( "Items" ); + lv1.setRootIsDecorated( true ); + + // create a list with 4 ListViewItems which will be parent items of other ListViewItems + ArrayList parentList = new ArrayList(); + + parentList.add( new TQListViewItem( lv1, "Parent Item 1" ) ); + parentList.add( new TQListViewItem( lv1, "Parent Item 2" ) ); + parentList.add( new TQListViewItem( lv1, "Parent Item 3" ) ); + parentList.add( new TQListViewItem( lv1, "Parent Item 4" ) ); + + TQListViewItem item = null; + int num = 1; + // go through the list of parent items... + for ( Iterator it = parentList.iterator(); it.hasNext(); num++ ) { + item = (TQListViewItem) it.next(); + item.setOpen( true ); + // ...and create 5 checkable child ListViewItems for each parent item + for ( int i = 1; i <= 5; i++ ) + new TQCheckListItem( item, i + ". Child of Parent " + num, TQCheckListItem.CheckBox ); + } + + // Create another widget for layouting + TQVBoxLayout tmp = new TQVBoxLayout( lay ); + tmp.setMargin( 5 ); + + // create a pushbutton + TQPushButton copy1 = new TQPushButton( " -> ", this ); + tmp.addWidget( copy1 ); + copy1.setMaximumWidth( copy1.sizeHint().width() ); + // connect the SIGNAL clicked() of the pushbutton with the SLOT copy1to2() + connect( copy1, SIGNAL(" clicked()"), this, SLOT(" copy1to2()") ); + + // another widget for layouting + TQVBoxLayout vbox2 = new TQVBoxLayout( lay ); + vbox2.setMargin( 5 ); + + // and another label + vbox2.addWidget( new TQLabel( "Check one item!", this ) ); + + // create the second listview + lv2 = new TQListView( this ); + vbox2.addWidget( lv2 ); + lv2.addColumn( "Items" ); + lv2.setRootIsDecorated( true ); + + // another widget needed for layouting only + tmp = new TQVBoxLayout( lay ); + tmp.setMargin( 5 ); + + // create another pushbutton... + TQPushButton copy2 = new TQPushButton( " -> ", this ); + lay.addWidget( copy2 ); + copy2.setMaximumWidth( copy2.sizeHint().width() ); + // ...and connect its clicked() SIGNAL to the copy2to3() SLOT + connect( copy2, SIGNAL(" clicked()"), this, SLOT(" copy2to3()") ); + + tmp = new TQVBoxLayout( lay ); + tmp.setMargin( 5 ); + + // and create a label which will be at the right of the window + label = new TQLabel( "No Item yet...", this ); + tmp.addWidget( label ); +} + +/* + SLOT copy1to2() + * + Copies all checked ListViewItems from the first ListView to + the second one, and inserts them as Radio-ListViewItem. + */ + +public void copy1to2() +{ + // create an iterator which operates on the first ListView + Iterator it = lv1.itemList().iterator(); + + lv2.clear(); + + // Insert first a controller Item into the second ListView. Always if Radio-ListViewItems + // are inserted into a Listview, the parent item of these MUST be a controller Item! + TQCheckListItem item = new TQCheckListItem( lv2, "Controller", TQCheckListItem.Controller ); + item.setOpen( true ); + + // iterate through the first ListView... + while ( it.hasNext() ) { + TQListViewItem current = (TQListViewItem) it.next(); + // ...check state of childs, and... + if ( current.parent() != null ) + // ...if the item is checked... + if ( ( (TQCheckListItem) current ).isOn() ) + // ...insert a Radio-ListViewItem with the same text into the second ListView + new TQCheckListItem( item, current.text( 0 ), TQCheckListItem.RadioButton ); + + } + if ( item.firstChild() != null ) + ( ( TQCheckListItem )item.firstChild() ).setOn( true ); +} + +/* + SLOT copy2to3() + * + Copies the checked item of the second ListView into the + Label at the right. + */ + +public void copy2to3() +{ + // create an iterator which operates on the second ListView + Iterator it = lv2.itemList().iterator(); + + label.setText( "No Item checked" ); + + // iterate through the second ListView... + while ( it.hasNext() ) { + TQListViewItem current = (TQListViewItem) it.next(); + // ...check state of childs, and... + if ( current.parent() != null ) + // ...if the item is checked... + if ( ( (TQCheckListItem) current ).isOn() ) + // ...set the text of the item to the label + label.setText( current.text( 0 ) ); + } +} +} + diff --git a/qtjava/javalib/examples/checklists/Main.java b/qtjava/javalib/examples/checklists/Main.java new file mode 100644 index 00000000..263073d3 --- /dev/null +++ b/qtjava/javalib/examples/checklists/Main.java @@ -0,0 +1,31 @@ +/*************************************************************************** +* $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 ) +{ + TQApplication a = new TQApplication( args ); + + CheckLists checklists = new CheckLists(); + checklists.resize( 650, 350 ); + checklists.setCaption( "Qt Example - CheckLists" ); + a.setMainWidget( checklists ); + checklists.show(); + + a.exec(); + return; +} +static { + qtjava.initialize(); +} + +} |