ListView control

Full source code for the project is available here - click here


How to create a list view of your own:

Step 1: Create a model by extending com.sun.list.ListModal
define your data model in this class.
example :

public class ExpenseInCategory extends ListModal {

    public var amountSpent: Number;
    public var category: Category;
    public var percentSpent: Integer;

    public override function toString() : String {
        "Expenses in {category} is {amountSpent} percentwise {percentSpent} Size of transactions is : {sizeof(transactions)}";
    }
}


Step 2:

extend the com.sun.list.ListItem  class and override cloneNode() and create() method.

in the create method you should specify how to  draw the item in ListView.  I have given two implementation for the ListItem  TextItem ( contains only Text node ) and categoryItem ( contains text , amount spend and percentage).
Example:
public class ExpenseInCategoryListItem extends ListItem{

    def font: Font = Font.font("Arial", FontWeight.BOLD, 12);
    def font1: Font = Font.font("Arial",10);

    public override function cloneNode():ListItem {
        ExpenseInCategoryListItem{
            item:item
            width:width
            height:height
            selected:selected
        }
    }

    public override function create():Node{
        var expense = VBox {
            translateY:3
            spacing:5
            content: [
                Text{
                    content: bind (item as ExpenseInCategory).category.toString()
                    font:font
                    fill: Color.MAROON
                },
                HBox {
                    spacing: 60
                    content: [
                        Text{
                            content:bind "${(item as ExpenseInCategory).amountSpent}"
                            font:bind font1
                            fill:Color.BLUE
                        },
                        Text{
                            //translateY:bind (-height)
                            content:bind "{(item as ExpenseInCategory).percentSpent}%"
                            font:bind font1
                            fill:Color.BLUE
                        }
                    ]
                }
            ]
        }
        Group{
            content: [rectangle,expense]
        }       
    }
}


Step 3:
Extend the factory and specify how to create your ListItem.  ListView will use this factory to create the list item.
Example:
public class ExpenseInCategoryFactory extends ListItemFactory{
    public override function create():ListItem{
        ExpenseInCategoryListItem{
        }
    }
}

Now testing your list item.
Step1: Create an array of Model

var categories : ExpenseInCategory[] =
      [ExpenseInCategory{category: Category {name : "Health"} amountSpent:100 percentSpent:10},
       ExpenseInCategory{category: Category {name : "Entertainment"} amountSpent:200 percentSpent:20},
       ExpenseInCategory{category: Category {name : "Car"} amountSpent:400 percentSpent:40},
       ExpenseInCategory{category: Category {name : "Education"} amountSpent:200 percentSpent:20},
       ExpenseInCategory{category: Category {name : "Apparel"} amountSpent:100 percentSpent:10}
       ExpenseInCategory{category: Category {name : "Medical"} amountSpent:100 percentSpent:10}
       ];

Step2: Create the listView
var chartListView = ListView{
       factory: ExpenseInCategoryFactory{}
       listItems: categories
       listHeight: 300
       listWidth: 240
       slotHeight: 35
       };

Comments:

[URL=http://www.aviconverterformac.com ]AVI Converter for Mac[/URL]| You also have the

option of sharing your feeds by entering in the URL of your OPML file. Once you're a member

and participating by sharing your feeds, you can really take advantage of what the site has

to offer. You can view the "Top 100 Feeds" and "Top Podcasts,"

Posted by bm on October 27, 2009 at 02:02 PM IST #

[URL=http://www.aviconverterformac.com ]AVI Converter for Mac[/URL]| You also have the

option of sharing your feeds by entering in the URL of your OPML file. Once you're a member

and participating by sharing your feeds, you can really take advantage of what the site has

to offer. You can view the "Top 100 Feeds" and "Top Podcasts,"

Posted by bm on October 27, 2009 at 02:10 PM IST #

Post a Comment:
  • HTML Syntax: NOT allowed

This blog copyright 2009 by Raghu Nair