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.hoteisadmin4;
    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>