Open the menu

    Criação de um data provider

    Implementação de um data provider para que o source seja populado através de uma fonte externa.

    AخA
     
    1
    package corporate.hoteisadmin3;
    2
    import java.io.File;
    3
    import org.w3c.dom.Document;
    4
    import org.w3c.dom.Node;
    5
    import lumis.doui.source.*;
    6
    import lumis.portal.PortalException;
    7
    import lumis.util.ITransaction;
    8
    import lumis.util.XmlUtil;
    9
    import lumis.portal.authentication.SessionConfig;
    10
    public class UFDataProvider implements IDataProvider<TabularSource<?>>
    11
    {
    12
           public void loadData(SessionConfig sessionConfig, TabularSource<?> source, ITransaction transaction) throws PortalException
    13
           {
    14
                 File ufs = new File("c:\\ufs.xml");
    15
                 Document ufsDom = XmlUtil.getDocument(ufs);
    16
                
    17
                 TabularData tabularData = source.getData();
    18
                
    19
                 Node[] ufNodes = XmlUtil.selectNodes("ufs/uf", ufsDom);
    20
                       
    21
                 for(Node ufNode : ufNodes)
    22
                 {
    23
                        ISourceData newRow = tabularData.addRow();
    24
                       
    25
                        String id = XmlUtil.readAttributeString("id", ufNode);
    26
                       
    27
                        newRow.put("uf", id);
    28
                 }
    29
           }
    30
    }

    O arquivo XML, referenciado no data provider, que contém informações de UFs que deve estar localizado, por exemplo, em c:/ufs.xml:

    6
     
    1
    <?xml version="1.0" encoding="UTF-8" ?>
    2
    <ufs>
    3
           <uf id="RJ" ></uf>
    4
           <uf id="SP" ></uf>
    5
           <uf id="MG" ></uf>
    6
    </ufs>