1.Name:tree,
2.title,
3.employeeType,
4.status

(一)

public   class  FrozenColumnsSample  implements  EntryPoint  {   
  
    
public void onModuleLoad() {   
  
        EmployeeXmlDS employeesDS 
= EmployeeXmlDS.getInstance();   
  
        
final TreeGrid treeGrid = new TreeGrid();   
        treeGrid.setLoadDataOnDemand(
false);   
        treeGrid.setWidth(
500);   
        treeGrid.setHeight(
400);   
        treeGrid.setDataSource(employeesDS);   
        treeGrid.setCanEdit(
true);   
        treeGrid.setNodeIcon(
"icons/16/person.png");   
        treeGrid.setFolderIcon(
"icons/16/person.png");   
        treeGrid.setAutoFetchData(
true);   
        treeGrid.setCanFreezeFields(
true);   
        treeGrid.setCanReparentNodes(
true);           
  
        TreeGridField nameField 
= new TreeGridField("Name"150);   
        nameField.setFrozen(
true);   
  
        TreeGridField jobField 
= new TreeGridField("Job"150);   
        TreeGridField employeeTypeField 
= new TreeGridField("EmployeeType"150);   
        TreeGridField employeeStatusField 
= new TreeGridField("EmployeeStatus"150);   
        TreeGridField salaryField 
= new TreeGridField("Salary");   
        TreeGridField genderField 
= new TreeGridField("Gender");   
        TreeGridField maritalStatusField 
= new TreeGridField("MaritalStatus");   
  
        treeGrid.setFields(nameField, jobField, employeeTypeField,employeeStatusField,   
                salaryField, genderField, maritalStatusField);   
  
        treeGrid.draw();   
    }
   
  
}
  
/**/ /*
 * SmartGWT (GWT for SmartClient)
 * Copyright 2008 and beyond, Isomorphic Software, Inc.
 *
 * SmartGWT is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License version 3
 * as published by the Free Software Foundation.  SmartGWT is also
 * available under typical commercial license terms - see
 * 
http://smartclient.com/license
 *
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 
*/


import  com.smartgwt.client.widgets.Canvas;
import  com.smartgwt.client.widgets.tree.TreeGrid;
import  com.smartgwt.client.widgets.tree.TreeGridField;
import  com.smartgwt.client.widgets.tree.events.DataArrivedHandler;
import  com.smartgwt.client.widgets.tree.events.DataArrivedEvent;
import  com.smartgwt.sample.showcase.client.data.EmployeeXmlDS;

public   class  FrozenColumnsSample  implements  EntryPoint  {

    
public void onModuleLoad() {

        EmployeeXmlDS employeesDS 
= EmployeeXmlDS.getInstance();

        
final TreeGrid treeGrid = new TreeGrid();
        treeGrid.setLoadDataOnDemand(
false);
        treeGrid.setWidth(
500);
        treeGrid.setHeight(
400);
        treeGrid.setDataSource(employeesDS);
        treeGrid.setCanEdit(
true);
        treeGrid.setNodeIcon(
"icons/16/person.png");
        treeGrid.setFolderIcon(
"icons/16/person.png");
        treeGrid.setAutoFetchData(
true);
        treeGrid.setCanFreezeFields(
true);
        treeGrid.setCanReparentNodes(
true);        

        TreeGridField nameField 
= new TreeGridField("Name"150);
        nameField.setFrozen(
true);

        TreeGridField jobField 
= new TreeGridField("Job"150);
        TreeGridField employeeTypeField 
= new TreeGridField("EmployeeType"150);
        TreeGridField employeeStatusField 
= new TreeGridField("EmployeeStatus"150);
        TreeGridField salaryField 
= new TreeGridField("Salary");
        TreeGridField genderField 
= new TreeGridField("Gender");
        TreeGridField maritalStatusField 
= new TreeGridField("MaritalStatus");

        treeGrid.setFields(nameField, jobField, employeeTypeField,employeeStatusField,
                salaryField, genderField, maritalStatusField);

        treeGrid.draw();
    }


}

 


(二)

public   class  EmployeeXmlDS  extends  DataSource  {   
  
    
private static EmployeeXmlDS instance = null;   
  
    
public static EmployeeXmlDS getInstance() {   
        
if (instance == null{   
            instance 
= new EmployeeXmlDS("employeesDS");   
        }
   
        
return instance;   
    }
   
  
    
public EmployeeXmlDS(String id) {   
  
        setID(id);   
        setTitleField(
"Name");   
        setRecordXPath(
"/List/employee");   
        DataSourceTextField nameField 
= new DataSourceTextField("Name""Name"128);   
  
        DataSourceIntegerField employeeIdField 
= new DataSourceIntegerField("EmployeeId""Employee ID");   
        employeeIdField.setPrimaryKey(
true);   
        employeeIdField.setRequired(
true);   
  
        DataSourceIntegerField reportsToField 
= new DataSourceIntegerField("ReportsTo""Manager");   
        reportsToField.setRequired(
true);   
        reportsToField.setForeignKey(id 
+ ".EmployeeId");   
        reportsToField.setRootValue(
"1");   
  
        DataSourceTextField jobField 
= new DataSourceTextField("Job""Title"128);   
        DataSourceTextField emailField 
= new DataSourceTextField("Email""Email"128);   
        DataSourceTextField statusField 
= new DataSourceTextField("EmployeeStatus""Status"40);   
        DataSourceFloatField salaryField 
= new DataSourceFloatField("Salary""Salary");   
        DataSourceTextField orgField 
= new DataSourceTextField("OrgUnit""Org Unit"128);   
        DataSourceTextField genderField 
= new DataSourceTextField("Gender""Gender"7);   
        genderField.setValueMap(
"male""female");   
        DataSourceTextField maritalStatusField 
= new DataSourceTextField("MaritalStatus""Marital Status"10);   
  
        setFields(nameField, employeeIdField, reportsToField, jobField, emailField,   
                statusField, salaryField, orgField, genderField, maritalStatusField);   
  
        setDataURL(
"ds/test_data/employees.data.xml");   
        setClientOnly(
true);   
    }
   
}
  
package  com.smartgwt.sample.showcase.client.data;

import  com.smartgwt.client.data.DataSource;
import  com.smartgwt.client.data.DataSourceField;
import  com.smartgwt.client.data.fields.DataSourceFloatField;
import  com.smartgwt.client.data.fields.DataSourceIntegerField;
import  com.smartgwt.client.data.fields.DataSourceTextField;

public   class  EmployeeXmlDS  extends  DataSource  {

    
private static EmployeeXmlDS instance = null;

    
public static EmployeeXmlDS getInstance() {
        
if (instance == null{
            instance 
= new EmployeeXmlDS("employeesDS");
        }

        
return instance;
    }


    
public EmployeeXmlDS(String id) {

        setID(id);
        setTitleField(
"Name");
        setRecordXPath(
"/List/employee");
        DataSourceTextField nameField 
= new DataSourceTextField("Name""Name"128);

        DataSourceIntegerField employeeIdField 
= new DataSourceIntegerField("EmployeeId""Employee ID");
        employeeIdField.setPrimaryKey(
true);
        employeeIdField.setRequired(
true);

        DataSourceIntegerField reportsToField 
= new DataSourceIntegerField("ReportsTo""Manager");
        reportsToField.setRequired(
true);
        reportsToField.setForeignKey(id 
+ ".EmployeeId");
        reportsToField.setRootValue(
"1");

        DataSourceTextField jobField 
= new DataSourceTextField("Job""Title"128);
        DataSourceTextField emailField 
= new DataSourceTextField("Email""Email"128);
        DataSourceTextField statusField 
= new DataSourceTextField("EmployeeStatus""Status"40);
        DataSourceFloatField salaryField 
= new DataSourceFloatField("Salary""Salary");
        DataSourceTextField orgField 
= new DataSourceTextField("OrgUnit""Org Unit"128);
        DataSourceTextField genderField 
= new DataSourceTextField("Gender""Gender"7);
        genderField.setValueMap(
"male""female");
        DataSourceTextField maritalStatusField 
= new DataSourceTextField("MaritalStatus""Marital Status"10);

        setFields(nameField, employeeIdField, reportsToField, jobField, emailField,
                statusField, salaryField, orgField, genderField, maritalStatusField);

        setDataURL(
"ds/test_data/employees.data.xml");
        setClientOnly(
true);
    }

}