Processing...

Suggested case list:

Using timer to refresh a grid

383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlink

user model to move item to another listbox

120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlink

Disabled list item row passed to VM-1981

296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlink

Disabled list item row passed to VM-1981

295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlink

Disabled list item row passed to VM-1981

294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlink

grid sample with ListModel/RowRenderer

816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlink

grid sample with ListModel/RowRenderer

809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlink

grid sample with ListModel/RowRenderer

196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlink

grid sample with ListModel/RowRenderer

195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlink

grid sample with ListModel/RowRenderer

194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlink

grid sample with ListModel/RowRenderer

193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlink

grid sample with ListModel/RowRenderer

192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlink

grid sample with ListModel/RowRenderer

191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlink

Hierarchy table without using ZK PE/EE

1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlink

grid sample with ListModel/RowRenderer

128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlink

user model to move item to another listbox

1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlink

Using timer to refresh a grid

1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlink

Fire a event from child iframe

1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlink

Textbox input restriction sample

1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlink

Test web core taglib in ZUL

1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlink

Latest 10 Fiddles :

constraint binding textbox

3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlink

Another new ZK fiddle

2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlink

Another new ZK fiddle

1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlink

Another new ZK fiddle

1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlink

tooltip example

2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlink

Another new ZK fiddle

1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlink

Another new ZK fiddle

1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlink

onClose

1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlink

Another new ZK fiddle

1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlink

ZK-5912-Suggestion

2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlink

borderlayout with tabs problem

1guest115.178.221.54368h7lfOct 2, 2019 12:21:58 PMlink

resources

index.zulzul<?xml version="1.0" encoding="UTF-8"?> <?page title="RAD4" contentType="text/html;charset=UTF-8" id="mainframe" docType="html" ?> <?link rel="icon" type="image/x-icon" href="/img/favicon.ico"?> <?link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico"?> <zk xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"> <window id="root" border="normal" vflex="1" hflex="1" sclass="T_root" > <borderlayout> <center id="center" border="normal" autoscroll="true" sclass="T_center" vflex="min"> <include id="content" src="welcome.zul" mode="instant" sclass="T_content" vflex="min"/> </center> <west collapsible="true" splittable="true"> <include src="sidebar.zul" /> </west> </borderlayout> </window> </zk> sidebar.zulzul<?xml version="1.0" encoding="UTF-8"?> <?page title="Task@Org" contentType="text/html;charset=UTF-8" id="mainframe" docType="html" ?> <div vflex="1"> <style>.z-toolbar { background-image:linear-gradient(#92DEE8, #92C7E8); } .z-toolbarbutton-content { text-shadow :none; }</style> <toolbar orient="vertical" vflex="1" style=""> <toolbarbutton label="Personal tasks"/> <toolbarbutton label="Cell tasks"/> <toolbarbutton label="Search tasks" /> </toolbar> </div>task.zulzul<div> <tabbox orient="left"> <tabs width="100px"> <tab label="General info" /> <tab label="Task info" /> <tab label="Recipients" /> <tab label="Proposition" /> <tab label="Comments" /> <tab label="Attachments" /> <tab label="Solution" /> <tab label="History" /> </tabs> <tabpanels> <tabpanel vflex="1"> <grid> <columns> <column hflex="min" align="right" /> <column hflex="1" /> </columns> <rows> <row> <label value="Title" /> <textbox value="title" width="80%" /> </row> <row> <label value="Context" /> <textbox value="context" rows="30" width="80%" /> </row> </rows> </grid> </tabpanel> <tabpanel vflex="1"> <grid> <columns> <column hflex="min" align="right" /> <column hflex="1" /> </columns> <rows> <row> <label value="Title" /> <textbox value="title" width="80%" /> </row> <row> <label value="Description" width="80%" /> <textbox value="description" rows="30" width="80%" /> </row> <row> <label value="Creation date" /> <datebox /> </row> <row> <label value="Planning date" /> <datebox /> </row> <row> <label value="Due date" /> <datebox /> </row> <row> <label value="restricted" /> <checkbox /> </row> <row> <label value="creator" /> <textbox value="auto fill in" /> </row> <row> <label value="creator" /> <textbox value="auto fill in" /> </row> <row> <label value="creator" /> <textbox value="auto fill in" /> </row> <row> <label value="creator" /> <textbox value="auto fill in" /> </row> <row> <label value="creator" /> <textbox value="auto fill in" /> </row> </rows> </grid> </tabpanel> <tabpanel vflex="1"> <button label="add recipient" /> <listbox> <listhead> <listheader label="name" /> <listheader label="status" vflex="min" /> <listheader label="delete" width="50px" /> </listhead> <template name="model"> <listitem> <listcell> <label value="name" /> </listcell> <listcell> <label value="status" /> </listcell> <listcell> <button label="delete" /> </listcell> </listitem> </template> </listbox> </tabpanel> <tabpanel vflex="1"> <grid> <columns> <column hflex="min" align="right" /> <column hflex="1" /> </columns> <rows> <row> <label value="Link" /> <textbox value="link" width="80%" /> </row> <row> <label value="Description" /> <textbox value="description" width="80%" /> </row> </rows> </grid> </tabpanel> <tabpanel vflex="1"> <button label="add comment" /> <listbox> <listhead> <listheader label="By" vflex="min" /> <listheader label="comment" /> </listhead> <template name="model"> <listitem> <listcell> <label value="name" /> </listcell> <listcell> <label value="comment" /> </listcell> </listitem> </template> </listbox> </tabpanel> <tabpanel vflex="1"> <fileupload label="add attachment" /> <listbox> <listhead> <listheader label="name" /> <listheader label="download" vflex="min" /> <listheader label="delete" width="50px" /> </listhead> <template name="model"> <listitem> <listcell> <label value="name" /> </listcell> <listcell> <button label="download" /> </listcell> <listcell> <button label="delete" /> </listcell> </listitem> </template> </listbox> </tabpanel> <tabpanel vflex="1"> <grid> <columns> <column hflex="min" align="right" /> <column hflex="1" /> </columns> <rows> <row> <label value="Claimer" /> <hlayout width="80%"> <textbox value="claimer" hflex="1" /> <button label="Claim task" /> </hlayout> </row> <row> <label value="info" width="80%" /> <textbox value="info" rows="15" width="80%" /> </row> <row> <label value="Complete task"/> <button label="Finish Task" /> </row> </rows> </grid> <button label="add subTask" /> <listbox> <listhead> <listheader label="subtask" /> <listheader label="status" vflex="min" /> </listhead> <template name="model"> <listitem> <listcell> <label value="name" /> </listcell> <listcell> <button label="download" /> </listcell> </listitem> </template> </listbox> </tabpanel> <tabpanel vflex="1"> <listbox> <listhead> <listheader label="By" vflex="min" /> <listheader label="action" /> </listhead> <template name="model"> <listitem> <listcell> <label value="name" /> </listcell> <listcell> <label value="action" /> </listcell> </listitem> </template> </listbox> </tabpanel> </tabpanels> </tabbox> </div> welcome.zulzul<?page title="Pengisian Data CIF Nasabah Individu" contentType="text/html;charset=UTF-8"?> <?link rel="stylesheet" href="resources/css/fontawesome.css" type="text/css"/ ?> <?link rel="stylesheet" href="resources/css/ionic.css" type="text/css"/ ?> <?link rel="stylesheet" href="resources/css/css.css" type="text/css"/ ?> <?link rel="stylesheet" href="resources/css/style.css" type="text/css"/ ?> <?link rel="stylesheet" href="resources/css/bootstrap.min.css" type="text/css"/ ?> <?script href="resources/js/bootstrap.bundle.js"/ type="text/javascript"?> <?script href="resources/js/jquery.js"/ type="text/javascript"?> <?script href="resources/js/bootstrap.min.js"/ type="text/javascript"?> <?link rel="stylesheet" type="text/css" href="/resources/css/normalize.css" ?> <?link rel="stylesheet" type="text/css" href="/resources/css/style.css" ?> <?link rel="stylesheet" type="text/css" href="/resources/css/main.css" ?> <?script src="/resources/js/config.js" ?> <zk xmlns:h="html"> <window apply="org.zkoss.bind.BindComposer" > <div sclass="row" style="display:flex;justify-content:flex-end;"> <div sclass="col-md-10 bold" style="padding-top:10px;"> <h:span sclass="size-md"> Pengkiniin Data Nasabah Badan Usaha </h:span> </div> <div sclass="col-md-10" style="display:flex;justify-content:center;"> <h:ul sclass="list-header size-md"> <h:a href="seacrh.zul"> <h:li sclass="navitem list-item"> <h:span sclass="bold size-md">1</h:span> Pencarian Nasabah </h:li> </h:a> <h:a href="pemilihanProduk.zul"> <h:li sclass="navitem list-item"> <h:span sclass="bold size-md">2</h:span> Pemilihan Produk </h:li> </h:a> <h:a href="dataCIF.zul"> <h:li sclass="navitem list-item list-border"> <h:span sclass="bold size-md">3</h:span> Pengisian Data CIF </h:li> </h:a> <h:a href="konfirmasi.zul"> <h:li sclass="navitem list-item"> <h:span sclass="bold size-md">4</h:span> Konfirmasi Nasabah </h:li> </h:a> </h:ul> </div> </div> <div sclass="row" style="display:flex;justify-content:flex-end;"> <div sclass="col-md-10" style="padding-top:10px;padding-bottom:0%;padding-right:50px;"> <tabbox width="100%" height="500px"> <tabs> <tab label="Badan Usaha" /> <tab label="Kontak" /> <tab label="Relasi" /> <tab label="lainnya" /> </tabs> <tabpanels style="overflow:auto;"> <tabpanel> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Tanggal Pendirian</h:span> </div> <div sclass="col-md-4"> <datebox lenient="false" compact="false" buttonVisible="true" format="dd/MMM/yyyy" value="@bind(vm.nasabahDto.tanggalLahir)@save(vm.nasabahDto.tanggalLahir,before='save')" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <label value="Tempat Pendirian" style="font-size:16px;margin-left:16px;font-weight:bold;margin-bottom:50px;margin-right:200px" /> <textbox width="200px" sclass="form-control" /> </div> <div class="row" style="padding-top:10px;padding-left:10px;"> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Kewarnegaraan</h:span> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.kewarganegaraanNasabah)" value="@load(vm.listdukcapil.get(0).getNationality())"> <comboitem value="wni" label="WNI" /> <comboitem value="wna" label="WNA" /> </combobox> </div> </div> <separator></separator> <separator></separator> <div class="col-md-4" style="padding-top:5px;"> <h:span>ID Tambahan</h:span> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <label value="No ID" style="font-size:16px;margin-left:16px;font-weight:bold;margin-bottom:50px;margin-right:200px" /> <textbox width="200px" sclass="form-control" /> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Tipe</h:span> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.agamaInd)" value="@load(vm.listdukcapil.get(0).getReligion())"> <comboitem value="Akta" label="Akta" /> <comboitem value="SIUP" label="SIUP" /> <comboitem value="TDP" label="TDP" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <label value="Tempat Terbit" style="font-size:16px;margin-left:16px;font-weight:bold;margin-bottom:50px;margin-right:200px" /> <textbox width="200px" sclass="form-control" /> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Tanggal Terbit</h:span> </div> <div sclass="col-md-4"> <datebox lenient="false" compact="false" buttonVisible="true" format="dd/MMM/yyyy" value="@bind(vm.nasabahDto.tanggalLahir)@save(vm.nasabahDto.tanggalLahir,before='save')" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span> Tanggal Jatuh Tempo </h:span> </div> <div sclass="col-md-4"> <datebox lenient="false" compact="false" buttonVisible="true" format="dd/MMM/yyyy" value="@bind(vm.nasabahDto.tanggalLahir)@save(vm.nasabahDto.tanggalLahir,before='save')" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Status</h:span> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.agamaInd)" value="@load(vm.listdukcapil.get(0).getReligion())"> <comboitem value="Aktif" label="Aktif" /> <comboitem value="Tidak Berlaku" label="Tidak Berlaku" /> </combobox> </div> </div> <div style="display:inline-block;padding-left:500px;possition:absoloute; right:0;padding-top:20px;"> <h:button sclass="btn btn-primary save-btn" onClick="@command('SaveListDataAlamat')"> Tambah Data </h:button> </div> </div> </tabpanel> <tabpanel style="overflow: auto"> <tabbox width="100%" height="99%"> <tabs> <tab label="Alamat" /> <tab label="No Telpon, Email, Sosial Media" /> </tabs> <tabpanels> <tabpanel style="overflow:auto;"> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:label for="tempat-terbit"> Jenis Alamat </h:label> </div> <div sclass="col-md-8"> <combobox width="80px" selectedItem="@bind(vm.jenisAlamat)" value="@load(vm.jenisAlamat)"> <comboitem value="Alamat ID" label="Alamat ID" /> <comboitem value="Alamat Kantor" label="Alamat Kantor" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:span>Alamat</h:span> </div> <div sclass="col-md-8"> <textbox name="alamatperusahaan" width="300px" sclass="form-control" value="@bind(vm.alamat)@save(vm.alamat)@load(vm.listdukcapil.get(0).getAddress())"/> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:label for="tempat-terbit"> Provinsi </h:label> </div> <div sclass="col-md-8"> <combobox name="provinsi" style="width:100px;" model="@load(vm.listProv)" selectedItem="@save(vm.prov)" onSelect="@command('findKota')" readonly="true" value="@load(vm.prov.namaProvinsi)" width="130px"> <template name="model"> <comboitem label="@load(each.namaProvinsi)" value="@load(each.idProvinsi)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:label for="tempat-terbit"> Kota / DATI II </h:label> </div> <div sclass="col-md-8"> <combobox model="@load(vm.listKota)" selectedItem="@save(vm.kota)" onSelect="@command('findKecamatan')"> <template name="model"> <comboitem label="@load(each.namaKota)" value="@load(each.idKota)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:label for="tempat-terbit"> Kecamatan </h:label> </div> <div sclass="col-md-8"> <combobox model="@load(vm.listKec)" selectedItem="@save(vm.kec)" onSelect="@command('findKelurahan')" value="@load(vm.kec.namaKecamatan)" width="140px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaKecamatan)" value="@load(each.idKecamatan)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:label for="tempat-terbit"> Kelurahan </h:label> </div> <div sclass="col-md-8"> <combobox model="@load(vm.listKel)" selectedItem="@save(vm.kel)" value="@load(vm.kel.namaKelurahan)" readonly="true" onChange="@command('findKodePos')" width="150px"> <template name="model"> <comboitem label="@load(each.namaKelurahan)" value="@load(each.idKelurahan)" /> </template> </combobox> </div> </div> <div sclass="col-md-8"> <combobox model="@load(vm.listKel)" selectedItem="@save(vm.kel)" value="@load(vm.kel.namaKelurahan)" readonly="true" onChange="@command('findKodePos')" width="150px"> <template name="model"> <comboitem label="@load(each.namaKelurahan)" value="@load(each.idKelurahan)" /> </template> </combobox> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:span>Kode Pos</h:span> </div> <div sclass="col-md-8"> <combobox model="@load(vm.listKodePos)" selectedItem="@save(vm.kodePos)" value="@load(vm.kodePos.kodePos)" readonly="true" width="80px"> <template name="model"> <comboitem label="@load(each.kodePos)" value="@load(each.idKodePos)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:span> Alamat Surat Menyurat </h:span> </div> <div sclass="col-md-8"> <combobox width="80px" selectedItem="@bind(vm.statusAlamat)"> <comboitem value="Ya" label="Ya" /> <comboitem value="Tidak" label="Tidak" /> </combobox> </div> </div> <div style="display:inline-block;padding-left:500px;possition:absoloute; right:0;padding-top:20px;"> <h:button sclass="btn btn-primary save-btn" onClick="@command('SaveListDataAlamat')"> Tambah Data </h:button> </div> <div class="col-md-12"> <div class="row" style="padding-top:10px;"> <h:input type="hidden" value="@bind(vm.alamatDto.idAlamat)@save(vm.alamatDto.idAlamat)" /> <div sclass="col-md-12"> <div sclass="row tbl table-responsive-sm " style="padding-top:30px;padding-left:10px;display:block;"> <div style="width:100%;"> <listbox model="@load(vm.listAlamatDto)" id="boxxt" mold="paging" pagingPosition="bottom" pageSize="3" sclass="tbl-custom listbox listbox-hover" width="100%"> <listhead sizable="true"> <!-- <listheader label="No" sort="auto" width="50px"/> --> <listheader label="Jenis Alamat" sort="auto" width="90px" /> <listheader label="Alamat" sort="auto" /> <listheader label="Provinsi" sort="auto" width="120px" /> <listheader label="Kota" sort="auto" width="120px" /> <listheader label="Kecamatan" sort="auto" width="120px" /> <listheader label="Kelurahan" sort="auto" width="120px" /> <listheader label="Kode Pos" sort="auto" width="90px" /> <listheader label="Tanggal Data" sort="auto" width="120px" /> <listheader label="Surat Menyurat" sort="auto" width="120px" /> </listhead> <template name="model"> <listitem> <!-- <listcell label="@load(each.noUrut)" /> --> <listcell label="@load(each.namaJenisAlamat)" /> <listcell label="@load(each.alamat)" /> <listcell label="@load(each.namaProvinsi)" /> <listcell label="@load(each.namaKota)" /> <listcell label="@load(each.namaKecamatan)" /> <listcell label="@load(each.namaKelurahan)" /> <listcell label="@load(each.noKodePos)" /> <listcell label="@load(each.tanggalData)" /> <listcell label="@load(each.statusSuratMenyurat)" /> </listitem> </template> </listbox> <separator /> </div> </div> </div> </div> </div> </tabpanel> <tabpanel style="overflow:auto;display:flex;flex-direction:row;flex-wrap:wrap;"> <div sclass="row" style="height:10px;"> <div sclass="col-md-6"> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-5" style="padding-top:5px;"> <h:label > Jenis No Telpon </h:label> </div> <div sclass="col-md-3"> <combobox width="100px" value="@bind(vm.jenisNoTelpon)"> <comboitem label="No Selular" value="Seluler" /> <comboitem label="No Rumah" value="Rumah" /> <comboitem label="No Kantor" value="Kantor" /> <comboitem label="No Faximili" value="Faximili" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-5" style="padding-top:5px;"> <h:span>No Telpon</h:span> </div> <div sclass="col-md-3"> <textbox name="alamatperusahaan" width="150px" sclass="form-control" value="@bind(vm.noTelpon)@save(vm.noTelpon)" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-5" style="padding-top:5px;"> <h:label for="tempat-terbit"> No Primer </h:label> </div> <div sclass="col-md-3"> <combobox width="80px" value="@bind(vm.statusNoPrimerInd)"> <comboitem value="Ya" label="Ya" /> <comboitem value="Tidak" label="Tidak" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:25px;"> <h:button sclass="btn btn-primary save-btn" onClick="@command('saveListDatatelpon')"> Tambah Data </h:button> </div> </div> <div sclass="col-md-6" style="padding-left:150px;"> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-9" style="padding-top:5px;"> <h:label for="tempat-terbit"> Jenis ID Elektronik </h:label> </div> <div sclass="col-md-3"> <combobox width="100px" value="@bind(vm.jenisSosmed)"> <comboitem label="Email" value="Email" /> <comboitem label="Facebook" value="Facebook" /> <comboitem label="Instagram" value="Instagram" /> <comboitem label="Twitter" value="Twitter" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-9" style="padding-top:5px;"> <h:span>Alamat</h:span> </div> <div sclass="col-md-3"> <textbox name="alamatperusahaan" width="150px" sclass="form-control" value="@bind(vm.namaAkun)@save(vm.namaAkun)" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:25px;"> <h:button sclass="btn btn-primary save-btn" onClick="@command('SaveListDataSosmed')"> Tambah Data </h:button> </div> </div> </div> <div sclass="row"> <div sclass="col-md-5"> <div sclass="row"> <div class="col-md-12"> <div sclass="row tbl table-responsive-sm " style="padding-top:30px;padding-left:33px;display:block;"> <div style="width:100%;"> <listbox model="@load(vm.listDataNoTelpon)" id="boxx" mold="paging" pagingPosition="bottom" pageSize="3" sclass="tbl-custom listbox listbox-hover" width="100%"> <listhead sizable="true"> <listheader label="Jenis No Telpoon" sort="auto" /> <listheader label="No Telpon" sort="auto" /> <listheader label="Tanggal Data" sort="auto" /> <listheader label="No Primer" sort="auto" /> </listhead> <template name="model"> <listitem> <!-- <listcell label="@load(each.noUrut)" /> --> <listcell label="@load(each.jenisNoTelp)" /> <listcell label="@load(each.noTelp)" /> <listcell label="@load(each.tanggalData)" /> <listcell label="@load(each.statusNoPrimer)" /> </listitem> </template> </listbox> <separator /> </div> </div> </div> </div> </div> <div sclass="col-md-6"> <div sclass="row"> <div sclass="col-md-12"> <h:input type="hidden" value="@bind(vm.mediaSosialDto.idSosmed)@save(vm.mediaSosialDto.idSosmed)" /> </div> <div class="col-md-12"> <div sclass="row tbl table-responsive-sm " style="padding-top:30px;padding-left:75px;display:block;"> <div style="width:100%;padding-left:30px;"> <listbox model="@load(vm.listMediaSosialDto)" id="boxxxxx" mold="paging" pagingPosition="bottom" pageSize="3" sclass="tbl-custom listbox listbox-hover" width="100%"> <listhead sizable="true"> <!-- <listheader label="NO" sort="auto" width="30px"/> --> <listheader label="Jenis Sosial Media" sort="auto" /> <listheader label="Nama Akun" sort="auto" /> <listheader label="Tanggal Data" sort="auto" /> </listhead> <template name="model"> <listitem> <!-- <listcell label="@load(each.noUrut)" /> --> <listcell label="@load(each.jenisSosmed)" /> <listcell label="@load(each.namaAkun)" /> <listcell label="@load(each.tanggalData)" /> </listitem> </template> </listbox> <separator /> </div> </div> </div> </div> </div> </div> </tabpanel> </tabpanels> </tabbox> </tabpanel> <tabpanel height="65%" style="overflow:auto;"> <div sclass="col-md-7"> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> Officer(HOST) </h:label> </div> <h:input type="hidden" value="@bind(vm.relasiDto.idRelasi)@save(vm.relasiDto.idRelasi)" /> <div sclass="col-md-6"> <combobox model="@load(vm.listOfficerHost)" selectedItem="@save(vm.officerHost)" value="@load(vm.officerHost.namaOfficer)" width="150px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaOfficer)" value="@load(each.idOfficer)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="tempat-terbit"> Tipe Relasi </h:label> </div> <div sclass="col-md-6"> <combobox model="@load(vm.listTipeRelasi)" selectedItem="@save(vm.tipeRelasi)" value="@load(vm.tipeRelasi.namaRelasi)" onSelect="@command('findFundingOfficer')" width="150px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaRelasi)" value="@load(each.idTipeRelasi)" /> </template> </combobox> </div> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:25px;margin-bottom:40px;"> <div sclass="col-md-2" style="padding-top:5px;"> <h:label for="jekel">Officer Funding</h:label> </div> <div sclass="col-md-6" style="padding-left:47px;"> <combobox model="@load(vm.listFundingOfficer)" selectedItem="@save(vm.fundingOfficer)" value="@load(vm.fundingOfficer.namaFundingOfficer)" width="150px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaFundingOfficer)" value="@load(each.idFundingOfficer)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-6" style="padding-top:5px;font-size:18px;font-weight:bold;"> <h:span>Data Pemilik dan Pengurus</h:span> </div> </div> <div sclass="col-md-7"> <h:input type="hidden" value="@bind(vm.nasabahDto.idNasabah)@save(vm.nasabahDto.idNasabah)" /> <h:input type="hidden" value="@bind(vm.nasabahDto.tipeNasabah)@save(vm.nasabahDto.tipeNasabah)" /> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> Nama Lengkap </h:label> </div> <div sclass="col-md-5"> <textbox name="name-lengkap" maxlength="20" width="310px" sclass="form-control" value="@bind(vm.nasabahDto.nama)@save(vm.nasabahDto.nama,before='save')@load(vm.listcontent.get(0).getNamalengkap())" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:4px;margin-top:0%;display:flex;flex-wrap:wrap;"> <div sclass="col-md-12" style="display:flex;flex-wrap:wrap;margin-left:-1%;"> <div sclass="col-md-4"> <h:label for="name-lengkap"> No.ID </h:label> </div> <div sclass="col-md-4" style="display:flex;flex-wrap:wrap;margin-left:-2%"> <textbox xmlns:w="client" class="form-control" style="margin-left:10%;" value="@bind(vm.nasabahDto.noId)@save(vm.nasabahDto.noId)@load(vm.listdukcapil.get(0).getIdNumber())"> </textbox> </div> <div sclass="col-md-4"> <h:label for="name-lengkap"> Tipe ID </h:label> <combobox id="tipeids" width="80px" selectedItem="@bind(vm.tipeIdNasabah)"> <comboitem value="KTP" label="KTP" /> <comboitem value="Passport" label="Passport" /> <comboitem value="Akte" label="Akte" /> </combobox> </div> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="tempat-terbit"> Tempat Terbit </h:label> </div> <div sclass="col-md-4"> <textbox name="name-lengkap" maxlength="20" sclass="form-control" value="@bind(vm.personalDto.tempatTerbit)@save(vm.personalDto.tempatTerbit)" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label>Jenis Kelamin</h:label> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.jenisKelaminInd)"> <comboitem value="L" label="Laki-Laki" /> <comboitem value="P" label="Perempuan" /> </combobox> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Kewarganegaraan</h:span> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.kewarganegaraanNasabah)" value="@load(vm.listdukcapil.get(0).getNationality())"> <comboitem value="wni" label="WNI" /> <comboitem value="wna" label="WNA" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:25px;"> <div sclass="col-md-3" style="padding-top:5px;"> <h:label for="tempat-terbit"> Jabatan </h:label> </div> <div sclass="col-md-5"> <combobox model="@load(vm.listJabatan)" selectedItem="@save(vm.jabatan)" value="@load(vm.jabatan.namaJabatan)" width="120px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaJabatan)" value="@load(each.idJabatan)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> Porsi Kepemilikan </h:label> </div> <div sclass="col-md-5"> <textbox name="name-lengkap" maxlength="20" width="310px" sclass="form-control" value="@bind(vm.nasabahDto.nama)@save(vm.nasabahDto.nama,before='save')@load(vm.listcontent.get(0).getNamalengkap())" /> </div> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:25px;padding-bottom:10px;"> <div sclass="col-md-2" style="padding-top:5px;"> <h:span>No Ponsel</h:span> </div> <div sclass="col-md-3" style="padding-left:45px;"> <textbox xmlns:w="client" name="phone" sclass="form-control" width="150px" value="@bind(vm.relasiDto.noTelp)@save(vm.relasiDto.noTelp)" > </textbox> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> Email </h:label> </div> <div sclass="col-md-5"> <textbox name="email" width="310px" sclass="form-control" value="@bind(vm.nasabahDto.nama)@save(vm.nasabahDto.nama,before='save')@load(vm.listcontent.get(0).getNamalengkap())" constraint="/^[0-9a-zA-Z]+([0-9a-zA-Z]*[-._+])*[0-9a-zA-Z]+@[0-9a-zA-Z]+([-.][0-9a-zA-Z]+)*([0-9a-zA-Z]*[.]){2,6}$/: Format email salah" /> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> No NPWP </h:label> </div> <div sclass="col-md-5"> <textbox name="npwp" width="310px" sclass="form-control" value="@bind(vm.nasabahDto.nama)@save(vm.nasabahDto.nama,before='save')@load(vm.listcontent.get(0).getNamalengkap())"> </textbox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Upload ID</h:span> </div> <div sclass="col-md-6"> <textbox name="upload-id" sclass="form-control" width="150px" value="@bind(vm.personalDto.tempatLahir)@save(vm.personalDto.tempatLahir)" disabled="true" /> <button label="Upload" upload="true,maxsize=300" style="margin-top:10px;"> </button> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Upload Contoh TTD</h:span> </div> <div sclass="col-md-6"> <textbox name="upload-id" sclass="form-control" width="150px" value="@bind(vm.personalDto.tempatLahir)@save(vm.personalDto.tempatLahir)" disabled="true" /> <button label="Upload" upload="true,maxsize=300" style="margin-top:10px;"> </button> </div> </div> <div sclass="row"> <div sclass="col-md-5"> <div sclass="row"> <div class="col-md-12"> <div sclass="row tbl table-responsive-sm " style="padding-top:30px;padding-left:33px;display:block;"> <div style="width:100%;"> <listbox model="@load(vm.listDataNoTelpon)" id="boxxx" mold="paging" pagingPosition="bottom" pageSize="3" sclass="tbl-custom listbox listbox-hover" width="100%"> <listhead sizable="true"> <listheader label="NO" sort="auto" width="30px" /> <listheader label="Nama" sort="auto" /> <listheader label="No ID" sort="auto" /> <listheader label="Tempat Terbit" sort="auto" /> <listheader label="Jenis Kelamin" sort="auto" /> <listheader label="Kewarganegaraan" sort="auto" /> <listheader label="Jabatan" sort="auto" /> <listheader label="No Ponsel" sort="auto" /> <listheader label="Email" sort="auto" /> <listheader label="No NPWP" sort="auto" /> <listheader label="File ID" sort="auto" /> <listheader label="File TTD" sort="auto" /> <listheader label="Wakil Badan Usaha" sort="auto" /> </listhead> <template name="model"> <listitem> <listcell label="@load(each.noUrut)" /> <listcell label="@load(each.nama)" /> <listcell label="@load(each.noID)" /> <listcell label="@load(each.tempatTerbit)" /> <listcell label="@load(each.jenisKelamin)" /> <listcell label="@load(each.kewarganegaraan)" /> <listcell label="@load(each.jabatan)" /> <listcell label="@load(each.noPonsel)" /> <listcell label="@load(each.email)" /> <listcell label="@load(each.noNPWP)" /> <listcell label="@load(each.fileID)" /> <listcell label="@load(each.fileTTD)" /> <listcell label="@load(each.wakilBadanUsaha)" /> <div sclass="col-md-12" style="margin-bottom:10px;"> <h:input type="checkbox" name="check" /> </div> </listitem> </template> </listbox> <separator /> </div> </div> </div> </div> </div> <div sclass="col-md-6"> <div sclass="row"> <div sclass="col-md-12"> <h:input type="hidden" value="@bind(vm.mediaSosialDto.idSosmed)@save(vm.mediaSosialDto.idSosmed)" /> </div> <div class="col-md-12"> <div sclass="row tbl table-responsive-sm " style="padding-top:30px;padding-left:75px;display:block;"> <div style="width:100%;padding-left:30px;"> <listbox model="@load(vm.listMediaSosialDto)" id="boxxxx" mold="paging" pagingPosition="bottom" pageSize="3" sclass="tbl-custom listbox listbox-hover" width="100%"> <listhead sizable="true"> <!-- <listheader label="NO" sort="auto" width="30px"/> --> <listheader label="Jenis Sosial Media" sort="auto" /> <listheader label="Nama Akun" sort="auto" /> <listheader label="Tanggal Data" sort="auto" /> </listhead> <template name="model"> <listitem> <!-- <listcell label="@load(each.noUrut)" /> --> <listcell label="@load(each.jenisSosmed)" /> <listcell label="@load(each.namaAkun)" /> <listcell label="@load(each.tanggalData)" /> </listitem> </template> </listbox> <separator /> </div> </div> </div> </div> </div> </div> </div> <div style="display:inline-block;padding-left:200px;text-align: right;"> <h:button sclass="btn btn-primary save-btn" onClick="@command('save')" style=""> Simpan </h:button> </div> <div sclass="row"></div> </div> </tabpanel> <tabpanel height="65%" style="overflow:auto;"> <div sclass="col-md-7"> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> Officer(HOST) </h:label> </div> <h:input type="hidden" value="@bind(vm.relasiDto.idRelasi)@save(vm.relasiDto.idRelasi)" /> <div sclass="col-md-6"> <combobox model="@load(vm.listOfficerHost)" selectedItem="@save(vm.officerHost)" value="@load(vm.officerHost.namaOfficer)" width="150px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaOfficer)" value="@load(each.idOfficer)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="tempat-terbit"> Tipe Relasi </h:label> </div> <div sclass="col-md-6"> <combobox model="@load(vm.listTipeRelasi)" selectedItem="@save(vm.tipeRelasi)" value="@load(vm.tipeRelasi.namaRelasi)" onSelect="@command('findFundingOfficer')" width="150px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaRelasi)" value="@load(each.idTipeRelasi)" /> </template> </combobox> </div> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:25px;margin-bottom:40px;"> <div sclass="col-md-2" style="padding-top:5px;"> <h:label for="jekel">Officer Funding</h:label> </div> <div sclass="col-md-6" style="padding-left:47px;"> <combobox model="@load(vm.listFundingOfficer)" selectedItem="@save(vm.fundingOfficer)" value="@load(vm.fundingOfficer.namaFundingOfficer)" width="150px" readonly="true"> <template name="model"> <comboitem label="@load(each.namaFundingOfficer)" value="@load(each.idFundingOfficer)" /> </template> </combobox> </div> </div> </tabpanel> <tabpanel style="overflow:auto;" height="60%"> <div sclass="col-md-7"> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-top:0%;"> <h:input type="hidden" value="@bind(vm.lainnyaDto.idLainnya)@save(vm.lainnyaDto.idLainnya)" /> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="name-lengkap"> Sumber Dana </h:label> </div> <div sclass="col-md-6"> <combobox model="@load(vm.listSumberDana)" readonly="true" selectedItem="@save(vm.sumberDanaEntity)" value="@load(vm.sumberDanaEntity.sumberDana)" width="120px"> <template name="model"> <comboitem label="@load(each.sumberDana)" value="@load(each.idSumberDana)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="tempat-terbit"> Tunjuan Penggunaan Dana </h:label> </div> <div sclass="col-md-6"> <combobox model="@load(vm.listPenggunaanDana)" readonly="true" selectedItem="@save(vm.penggunaanDanaEntity)" value="@load(vm.penggunaanDanaEntity.penggunaanDana)" width="120px"> <template name="model"> <comboitem label="@load(each.penggunaanDana)" value="@load(each.idPenggunaanDana)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;margin-bottom:40px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:label for="jekel"> Tujuan Pembukaan Rekening </h:label> </div> <div sclass="col-md-6"> <combobox model="@load(vm.listTujuanPembukaan)" readonly="true" selectedItem="@save(vm.tujuanPembukaanEntity)" value="@load(vm.tujuanPembukaanEntity.tujuanPembukaan)" width="120px"> <template name="model"> <comboitem label="@load(each.tujuanPembukaan)" value="@load(each.idTujuanPembukaan)" /> </template> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Aktivitas Transaksi Normal</h:span> </div> <div sclass="col-md-6"> <combobox model="@load(vm.listAktivitasTransaksi)" readonly="true" selectedItem="@save(vm.aktivitasTransksaiEntity)" value="@load(vm.aktivitasTransksaiEntity.aktivitaTransaksi)" width="120px"> <template name="model"> <comboitem label="@load(each.aktivitaTransaksi)" value="@load(each.idAktivitas)" /> </template> </combobox> </div> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.agamaInd)" value="@load(vm.listdukcapil.get(0).getReligion())"> <comboitem value="Retail" label="Retail" /> <comboitem value="Komersial" label="Komersial" /> <comboitem value="Korporasi" label="Korporasi" /> </combobox> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-5" style="padding-top:5px;"> <h:label for="tempat-terbit"> Penghasilan Perbulan </h:label> </div> <div sclass="col-md-3"> <combobox width="100px" value="@bind(vm.jenisNoTelpon)"> <comboitem value="=10JT" label="=10JT"> </comboitem> <comboitem value=">10JT" label=">10JT"></comboitem> <comboitem value="10JT-=20JT" label="10JT-=20JT" ></comboitem> <comboitem value="20JT-=30JT" label="20JT-=30JT" ></comboitem> <comboitem value="30JT-=50JT" label="30JT-=50JT" ></comboitem> <comboitem value="50JT-=100JT" label="50JT-=100JT" ></comboitem> <comboitem value="100JT" label="100JT" ></comboitem> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Segmen Nasabah</h:span> </div> <div sclass="col-md-4"> <combobox width="80px" selectedItem="@bind(vm.agamaInd)" value="@load(vm.listdukcapil.get(0).getReligion())"> <comboitem value="Retail" label="Retail" /> <comboitem value="Komersial" label="Komersial" /> <comboitem value="Korporasi" label="Korporasi" /> </combobox> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-4" style="padding-top:5px;"> <h:span>Pihak Terkait Bank</h:span> </div> <div sclass="col-md-4"> <h:select name="pihakterkait" sclass="form-control"> <h:option>Ya</h:option> <h:option>Tidak</h:option> </h:select> </div> </div> <div sclass="row" style="padding-top:10px;padding-left:10px;"> <div sclass="col-md-5" style="padding-top:5px;"> <h:span>Jenis Resiko Nasabah</h:span> </div> <div sclass="col-md-3"> <textbox name="alamatperusahaan" width="150px" sclass="form-control" readonly="true" value="@bind(vm.noTelpon)@save(vm.noTelpon)"/> </div> </div> </div> </tabpanel> </tabpanels> </tabbox> </div> </div> </window> </zk>MainframeVM.javajava import java.io.UnsupportedEncodingException; import java.util.HashMap; import java.util.Map; import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.AfterCompose; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.GlobalCommand; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.bind.annotation.QueryParam; import org.zkoss.bind.annotation.SelectorParam; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.Tab; import org.zkoss.zul.Tabbox; import org.zkoss.zul.Tabpanel; /** * * @author cossaer.f */ public class MainframeVM { private Tabbox tabbox; private String link; @AfterCompose // @Init doesn't work => is before compose so @SelectorParam will be null. Normally you use @Init!! public void init(@QueryParam("task") String tasks, @QueryParam("activity") String activitys, @SelectorParam("#tabs") Tabbox tabs) throws UnsupportedEncodingException { this.tabbox = tabs; if (tasks != null) { openTabs(tasks, "Task"); } if (activitys != null) { openTabs(activitys, "Activity"); } } private void openTabs(String params, String type) throws UnsupportedEncodingException { String decoded = new String("1;2;3");//Base64.decode(params.toCharArray()), "UTF-8"); for (String param : decoded.split(";")) { final Tab tab = new Tab(type + " : " + param); tab.setClosable(true); tab.setAttribute("typeId", param); tab.setAttribute("type", type); tabbox.getTabs().appendChild(tab); final Tabpanel panel = new Tabpanel(); tabbox.getTabpanels().appendChild(panel); Map<String, Object> args = new HashMap<String,Object>(); args.put("task", param); Executions.createComponents("task/task.zul", panel, args); tab.addEventListener("onClose", new EventListener<Event>() { @Override public void onEvent(Event t) throws Exception { tabbox.getTabs().removeChild(tab); tabbox.getTabpanels().removeChild(panel); refreshLink(null); } }); } } @Command @NotifyChange("link") public void add() { link = null; int count = tabbox.getTabpanels().getChildren().size(); final Tab tab = new Tab("Task : " + count); tab.setClosable(true); tab.setAttribute("type", "Task"); tab.setAttribute("typeId", String.valueOf(count)); tabbox.getTabs().appendChild(tab); final Tabpanel panel = new Tabpanel(); tabbox.getTabpanels().appendChild(panel); Map<String, Object> args = new HashMap<String, Object>(); args.put("task", count); Executions.createComponents("task.zul", panel, args); tab.addEventListener("onClose", new EventListener<Event>() { @Override public void onEvent(Event t) throws Exception { tabbox.getTabs().removeChild(tab); tabbox.getTabpanels().removeChild(panel); refreshLink(null); } }); } @GlobalCommand public void createTask() { System.out.println("createTask"); link = null; final Tab tab = new Tab("new Task"); tab.setClosable(true); tab.setAttribute("type", "Task"); tabbox.getTabs().appendChild(tab); final Tabpanel panel = new Tabpanel(); tabbox.getTabpanels().appendChild(panel); Map<String, Object> args = new HashMap<String, Object>(); Executions.createComponents("task/task.zul", panel, args); tab.addEventListener("onClose", new EventListener<Event>() { @Override public void onEvent(Event t) throws Exception { tabbox.getTabs().removeChild(tab); tabbox.getTabpanels().removeChild(panel); refreshLink(null); } }); } @Command @NotifyChange("link") public void shareLink() { String taskLink = ""; for (Component tab : tabbox.getTabs().getChildren()) { taskLink += (String) tab.getAttribute("typeId") + ";"; } String port = (Executions.getCurrent().getServerPort() == 8080) ? ":8080" : ""; // String taskString = "?task=" + new String(Base64.encode(taskLink.getBytes())); link = Executions.getCurrent().getScheme() + "://" + Executions.getCurrent().getServerName() + port + Executions.getCurrent().getContextPath() + Executions.getCurrent().getDesktop().getRequestPath().replace("/WEB-INF/webpages/zk", "").replace(".zul", ""); // + taskString; } public void refreshLink(String text) { link = text; BindUtils.postNotifyChange(null, null, this, "link"); } public String getLink() { return link; } }