--- /dev/null
+package hu.user.lis.db;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@Builder
+@AllArgsConstructor
+public class Partner {
+ String id;
+ String name;
+ String vatNr;
+ String address;
+ boolean active;
+
+ public static class PartnerBuilder {
+ private boolean active = true;
+ }
+}
<groupId>hu.user</groupId>
<artifactId>lis-db</artifactId>
<version>0.0.1-SNAPSHOT</version>
- <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
--- /dev/null
+package hu.user.lis.services.data;
+
+import hu.user.lis.db.Partner;
+
+import java.util.List;
+
+public interface PartnerService {
+ List<Partner> getAll();
+}
--- /dev/null
+package hu.user.lis.services.data;
+
+import com.github.javafaker.Faker;
+import hu.user.lis.db.Partner;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class PartnerServiceImpl implements PartnerService {
+ private List<Partner> partners;
+
+ @Override
+ public List<Partner> getAll() {
+ if (partners == null) {
+ partners = generate();
+ }
+ return partners;
+ }
+
+ private List<Partner> generate() {
+ List<Partner> result = new ArrayList<>();
+ Faker faker = new Faker();
+ for (int i = 0; i < 100; i++) {
+ String id = RandomStringUtils.random(8, "0123456789abcdef");
+ String name = faker.name().fullName();
+ String vatNr = RandomStringUtils.random(12, "0123456789");
+ String address = String.format("%s %s, %s street %s", faker.address().zipCode(), faker.address().city(),
+ faker.address().streetName(), faker.address().buildingNumber());
+ Partner partner = Partner.builder().id(id).name(name).vatNr(vatNr).address(address).build();
+ result.add(partner);
+ }
+ return result;
+ }
+}
<artifactId>spring-beans</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
- <!-- https://www.zkoss.org/wiki/ZK_Installation_Guide/Maven_Setup#ZK_EE -->
<dependency>
<groupId>org.zkoss.zkspringboot</groupId>
<artifactId>zkspringboot-starter</artifactId>
<artifactId>lis-services</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>hu.user</groupId>
- <artifactId>lis-services</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <scope>compile</scope>
- </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
--- /dev/null
+package hu.user.lis.ui.data;
+
+import hu.user.lis.db.Partner;
+import hu.user.lis.services.data.PartnerService;
+import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.config.ConfigurableBeanFactory;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.zkoss.bind.BindUtils;
+import org.zkoss.zul.FieldComparator;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Component
+@Log4j2
+@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
+public class PartnersDataModel extends CachedDataModel<Partner> {
+ private String partialName;
+ private String partialAddress;
+ private String partialVatNr;
+ private boolean listAll;
+ @Autowired
+ PartnerService partnerService;
+
+
+ private boolean canExecuteSearch() {
+ boolean result = listAll ||
+ StringUtils.isNotBlank(partialName) ||
+ StringUtils.isNotBlank(partialVatNr) ||
+ StringUtils.isNotBlank(partialAddress);
+ log.info("Can execute search: {}", result);
+ return result;
+ }
+
+ private boolean filter(Partner partner) {
+ if (listAll) {
+ return true;
+ }
+
+ boolean result = true;
+ if (StringUtils.isNotBlank(partialName)) {
+ if (!partner.getName().toLowerCase().startsWith(partialName.toLowerCase())) {
+ result = false;
+ }
+ }
+ if (StringUtils.isNotBlank(partialVatNr)) {
+ if (!partner.getVatNr().toLowerCase().startsWith(partialVatNr.toLowerCase())) {
+ result = false;
+ }
+ }
+ if (StringUtils.isNotBlank(partialAddress)) {
+ if (!partner.getAddress().toLowerCase().startsWith(partialAddress.toLowerCase())) {
+ result = false;
+ }
+ }
+ return result;
+ }
+
+ @Override
+ protected List<Partner> getResultSet(long offset, int limit, FieldComparator sortComparator) {
+ List<Partner> result = null;
+ if (canExecuteSearch()) {
+ result = partnerService.getAll().stream()
+ .sorted(Comparator.comparing(Partner::getName))
+ .filter(s -> filter(s))
+ .collect(Collectors.toList());
+ }
+ return result;
+ }
+
+ @Override
+ public int getResultSetCount() {
+ int result = 0;
+ if (canExecuteSearch()) {
+ result = (int) partnerService.getAll().stream()
+ .filter(s -> filter(s))
+ .count();
+ }
+ return result;
+ }
+
+ public void search(String partialName, String partialVatNr, String partialAddress) {
+ log.info("Searching partner using filters: name LIKE {}, VAT number LIKE {}, Address LIKE {}",
+ partialName, partialVatNr, partialAddress);
+ listAll = false;
+ this.partialName = partialName;
+ this.partialVatNr = partialVatNr;
+ this.partialAddress = partialAddress;
+ super.reset();
+ BindUtils.postNotifyChange(null, null, this, "*");
+ }
+
+ public void listAll() {
+ log.info("List all partners");
+ listAll = true;
+ super.reset();
+ BindUtils.postNotifyChange(null, null, this, "*");
+ }
+}
--- /dev/null
+package hu.user.lis.ui.view;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.boot.info.BuildProperties;
+import org.zkoss.bind.annotation.Command;
+import org.zkoss.bind.annotation.Init;
+import org.zkoss.zk.ui.select.annotation.VariableResolver;
+import org.zkoss.zk.ui.select.annotation.WireVariable;
+
+@Log4j2
+@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
+public class IndexViewModel {
+ @Getter
+ @WireVariable
+ BuildProperties buildProperties;
+
+ @Getter
+ @Setter
+ String searchPhrase;
+
+ @Init
+ public void init() {
+ log.info("Init");
+ }
+
+ @Command
+ public void search() {
+
+ }
+}
--- /dev/null
+package hu.user.lis.ui.view;
+
+import hu.user.lis.db.Partner;
+import hu.user.lis.ui.data.FormDocument;
+import hu.user.lis.ui.form.FormValidator;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.zkoss.bind.annotation.BindingParam;
+import org.zkoss.bind.annotation.Command;
+import org.zkoss.bind.annotation.Init;
+import org.zkoss.zk.ui.event.Event;
+import org.zkoss.zk.ui.event.Events;
+import org.zkoss.zk.ui.select.annotation.VariableResolver;
+import org.zkoss.zkplus.spring.DelegatingVariableResolver;
+import org.zkoss.zul.Window;
+
+@Log4j2
+@Getter
+@Setter
+@VariableResolver(DelegatingVariableResolver.class)
+public class PartnerEditorModel {
+ private FormDocument formDocument;
+ private boolean canEdit;
+ private Partner selectedPartner;
+ @Autowired
+ FormValidator formValidator;
+
+ @Init
+ public void init() {
+ log.info("Initialized");
+ //TODO atnevezni, mert forditva mukodik
+ setCanEdit(true);
+ }
+
+ public String getFieldStyle(String field, String baseStyle) {
+// Object error = getFormDocument().get(field + FIELD_POSTFIX_ERROR);
+// if (error != null && (boolean) error)
+// return baseStyle + " " + ERROR;
+// else
+// return baseStyle;
+ return baseStyle;
+ }
+
+ @Command
+ public void onCloseWindow(@BindingParam("target") Window target, @BindingParam("select") boolean select) {
+ Event closeEvent = new Event("onClose", target, select ? selectedPartner : null);
+ Events.postEvent(closeEvent);
+ }
+}
--- /dev/null
+package hu.user.lis.ui.view;
+
+import hu.user.lis.db.Partner;
+import hu.user.lis.ui.data.FormDocument;
+import hu.user.lis.ui.data.PartnersDataModel;
+import hu.user.lis.ui.form.FormValidator;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.zkoss.bind.annotation.Command;
+import org.zkoss.bind.annotation.Init;
+import org.zkoss.bind.annotation.NotifyChange;
+import org.zkoss.zk.ui.select.annotation.VariableResolver;
+import org.zkoss.zk.ui.select.annotation.WireVariable;
+import org.zkoss.zkplus.spring.DelegatingVariableResolver;
+
+import java.util.Set;
+
+@Log4j2
+@Getter
+@Setter
+@VariableResolver(DelegatingVariableResolver.class)
+public class PartnersViewModel {
+ private FormDocument formDocument;
+ private boolean canEdit;
+ private String partialName;
+ private String partialVatNr;
+ private String partialAddress;
+ private Partner selectedPartner;
+ @WireVariable
+ PartnersDataModel partnersDataModel;
+ @Autowired
+ FormValidator formValidator;
+
+ @Init
+ public void init() {
+ log.info("Initialized");
+ //TODO atnevezni, mert forditva mukodik
+ setCanEdit(true);
+ partnersDataModel.listAll();
+ }
+
+ public String getFieldStyle(String field, String baseStyle) {
+// Object error = getFormDocument().get(field + FIELD_POSTFIX_ERROR);
+// if (error != null && (boolean) error)
+// return baseStyle + " " + ERROR;
+// else
+// return baseStyle;
+ return baseStyle;
+ }
+
+ @Command
+ @NotifyChange("formDocument")
+ public void search() {
+ partnersDataModel.clearSelection();
+ formDocument = null;
+ partnersDataModel.search(partialName, partialVatNr, partialAddress);
+ }
+
+ @Command
+ @NotifyChange("formDocument")
+ public void onListSelection() {
+ formDocument = null;
+ selectedPartner = null;
+ Set<Partner> selections = partnersDataModel.getSelection();
+ if (selections.iterator().hasNext()) {
+ selectedPartner = selections.iterator().next();
+ formDocument = FormDocument.builder().build()
+ .setData(selectedPartner);
+ log.info("Selected {}", formDocument);
+ }
+ }
+
+ @Command
+ public void onAddNew() {
+ }
+
+ @Command
+ public void onEdit() {
+ }
+}
import lombok.Getter;
import lombok.Setter;
import lombok.extern.log4j.Log4j2;
-import org.springframework.boot.info.BuildProperties;
import org.zkoss.bind.BindContext;
import org.zkoss.bind.BindUtils;
import org.zkoss.bind.annotation.Command;
@Log4j2
@VariableResolver(org.zkoss.zkplus.spring.DelegatingVariableResolver.class)
-public class Index {
+public class SupplierViewModel {
@Getter
@Setter
@WireVariable
@Getter
@Setter
private String selectedSupplierId;
- @Getter
- @WireVariable
- BuildProperties buildProperties;
@Command
public void onBandChanging(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) {
<div class="field">
- <div class="row field-top">
- <include src="/fields/field-label.zul" />
- </div>
- <div class="row field-textbox field-top">
- <radio label="${each}" forEach="${arg.values}" value="'${forEachStatus.index + 1}'"
- checked="@bind(vm.formDocument[field]) @converter('hu.bitcity.converter.RadioCheckConverter')"
- onCheck="@command('onRadioCheck', target=self) @global-command('autosave', source=self)"
- disabled="@load(vm.formDocument['ro'] || ro)" />
- <textbox class="inline-textbox" value="@load(vm.formDocument[dataField]) @save(vm.formDocument[dataField], before='submit') @validator(vm.formValidator, parameters=validatorargs)"
- disabled="@load(vm.formDocument['ro'] || ro)" onChange="@command('submit')" />
- </div>
+ <div class="row field-top">
+ <include src="/fields/field-label.zul"/>
+ </div>
+ <div class="row field-textbox field-top">
+ <radio label="${each}" forEach="${arg.values}" value="'${forEachStatus.index + 1}'"
+ checked="@bind(vm.formDocument[field]) @converter('hu.user.lis.ui.converter.RadioCheckConverter')"
+ onCheck="@command('onRadioCheck', target=self) @global-command('autosave', source=self)"
+ disabled="@load(vm.formDocument['ro'] || ro)"/>
+ <textbox class="inline-textbox"
+ value="@load(vm.formDocument[dataField]) @save(vm.formDocument[dataField], before='submit') @validator(vm.formValidator, parameters=validatorargs)"
+ disabled="@load(vm.formDocument['ro'] || ro)" onChange="@command('submit')"/>
+ </div>
</div>
-<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
-<zk xmlns:c="client">
- <div viewModel="@id('vm') @init('hu.user.lis.ui.view.Index')"
- style="height: 100%;width: 100%; display: flex; justify-content: center;">
- <window title="@load(vm.buildProperties.version)" border="true"
- style="height: 50%; width: 50%; position: relative; position: absolute; top: 50%; transform: translate(0, -50%);">
- <vlayout>
- <hlayout>
- <bandbox id="bd" autodrop="true" iconSclass="z-icon-sort-down"
- value="@load(vm.selectedSupplier) @converter('hu.user.lis.ui.converter.SupplierToNameConverter')"
- onChanging="@command('onBandChanging')" onOpen="@command('onBandOpen')">
- <attribute c:name="_doKeyDown">
- <![CDATA[
- function (evt) {
- var keyCode = evt.keyCode;
- console.log(keyCode);
- if (keyCode == 13){
- zk.$("$bd").close();
- zk.$("$bd").focus();
- return;
- }
- if (keyCode == 40){
- if (!zk.$("$bd").isOpen()) {
- zk.$("$bd").open();
- zAu.send(new zk.Event(zk.Widget.$('$bd'), "onOpen", {'open': true}, {toServer:true}));
- }
- zk.$("$bd-list").focus();
- return;
- }
- if (keyCode == 27){
- zk.$("$bd").close()
- zk.$("$bd").focus();
- return;
- }
- }
- ]]>
- </attribute>
- <bandpopup>
- <listbox id="bd-list" height="250px" width="450px"
- model="@bind(vm.suppliersSimpleDataModel)"
- selectedItem="@bind(vm.selectedSupplier)"
- onClick="bd.close()"
- onDoubleClick="bd.close()">
- <listhead visible="false">
- <listheader label="id" vflex="min"/>
- <listheader label="name" vflex="max"/>
- <listheader label="zip" vflex="min"/>
- </listhead>
- <template name="model">
- <listitem>
- <listcell label="@load(each.id)"/>
- <listcell label="@load(each.name)"/>
- <listcell label="@load(each.zipCode)"/>
- </listitem>
- </template>
- </listbox>
- </bandpopup>
- </bandbox>
- <button iconSclass="z-icon-search-plus" onClick="@command('onPopupSuppliers')"/>
+<?component name="partners" inline="true" macroURI="~./partners.zul"?>
+<zk>
+ <window vflex="true" viewModel="@id('vm') @init('hu.user.lis.ui.view.IndexViewModel')">
+ <caption>
+ <hlayout hflex="max">
+ <label value="LEADER INFORMATION SYSTEM"/>
+ <separator/>
+ <label value="@load(vm.buildProperties.version)"/>
+ <!-- <button iconSclass="z-icon-user"/>-->
+ </hlayout>
+ </caption>
+ <borderlayout>
+ <north border="none" hflex="true">
+ <hlayout valign="middle">
+ <menubar autodrop="true" hflex="true">
+ <menuitem id="partnersMenuItem" iconSclass="z-icon-group" label="Partnerek"
+ onClick="mainContent.setSelectedIndex(0)"/>
+ <menuitem id="projectsMenuItem" iconSclass="z-icon-tasks" label="Projektek"
+ onClick="mainContent.setSelectedIndex(1)"/>
+ </menubar>
+ <hbox hflex="min" pack="right">
+ <textbox value="@bind(vm.searchPhrase)" onOK="@command('search')"></textbox>
+ <button iconSclass="z-icon-search"/>
+ </hbox>
</hlayout>
-
- <hlayout>
- <label value="Kiválasztott azonosító: "/>
- <label value="@load(vm.selectedSupplierId)"/>
- </hlayout>
- </vlayout>
- </window>
- <!-- <combobox sclass="ten columns" model="@bind(m.supplierListModel)" selectedItem="@bind(m.selectedSupplier)"-->
- <!-- autodrop="true" buttonVisible="true">-->
- <!-- </combobox>-->
-
- </div>
-</zk>
\ No newline at end of file
+ </north>
+ <center border="none" hflex="true">
+ <tabbox id="mainContent" vflex="true" hflex="true" orient="top">
+ <tabs visible="false">
+ <tab id="tab0" label="Partnerek" selected="true"/>
+ <tab id="tab1" label="Projektek"/>
+ </tabs>
+ <tabpanels>
+ <tabpanel id="partnersTab">
+ <partners/>
+ </tabpanel>
+ <tabpanel id="projectsTab" fulfill="self.linkedTab.onSelect, projectsMenuItem.onClick">
+ <window title="Projektek"></window>
+ </tabpanel>
+ </tabpanels>
+ </tabbox>
+ </center>
+ </borderlayout>
+ </window>
+</zk>
--- /dev/null
+<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
+<?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
+<?component name="text" class="hu.user.lis.ui.form.Field$Text" ?>
+<zk>
+ <window id="partnerPopup" title="Partner szerkesztés" width="60%" height="40%" closable="true"
+ viewModel="@id('vm') @init('hu.user.lis.ui.view.PartnerEditorModel')">
+ <borderlayout>
+ <center border="none" vflex="true">
+ <div class="container u-form-width u-max-form-width">
+ <div class="row">
+ <text class="twelve columns" label="Név" field="name"/>
+ </div>
+ <div class="row">
+ <text class="twelve columns" label="Adószám" field="vatNr"/>
+ </div>
+ <div class="row">
+ <text class="twelve columns" label="Cím" field="address"/>
+ </div>
+ <div class="row">
+ <radiogroup model="@bind(vm.active)">
+ <radio label="Aktív" value="true"/>
+ <radio label="Inaktív" value="false"/>
+ </radiogroup>
+ </div>
+ </div>
+ </center>
+ <south flex="true" style="text-align: right; padding: 10px">
+ <hlayout>
+ <button label="Bezár" onClick="@command('onCloseWindow', target=partnerPopup, select=false)"/>
+ <button label="Mentés" onClick="@command('onCloseWindow', target=partnerPopup, select=true)"/>
+ </hlayout>
+ </south>
+ </borderlayout>
+ </window>
+</zk>
\ No newline at end of file
--- /dev/null
+<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
+<?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
+<zk>
+ <style>
+ .z-listitem-selected>.z-listcell>.z-listcell-content {
+ font-weight: bold;
+ }
+ </style>
+ <window title="Partnerek" vflex="true" viewModel="@id('vm') @init('hu.user.lis.ui.view.PartnersViewModel')">
+
+ <borderlayout>
+ <north flex="true">
+ <toolbar>
+ <toolbarbutton label="Új partner" iconSclass="z-icon-plus" onClick="@command('onAddNew')"/>
+ <toolbarbutton label="Szerkesztés" iconSclass="z-icon-edit" onClick="@command('onEdit')"
+ disabled="@load(empty vm.formDocument)"/>
+ </toolbar>
+ </north>
+ <center border="none" flex="true">
+ <listbox id="partnersList" vflex="true" model="@load(vm.partnersDataModel)" mold="paging"
+ autopaging="true"
+ pagingPosition="top" onSelect="@command('onListSelection')">
+ <listhead>
+ <listheader label="Név" align="left"/>
+ <listheader label="Adószám" align="left"/>
+ <listheader label="Cím" align="left"/>
+ <listheader label="Aktív" align="left"/>
+ </listhead>
+ <template name="model">
+ <listitem>
+ <listcell label="@load(each.name)"/>
+ <listcell label="@load(each.vatNr)"/>
+ <listcell label="@load(each.address)"/>
+ <listcell>
+ <a iconSclass="z-icon-check" visible="@load(each.active)"/>
+ <a iconSclass="z-icon-ban" visible="@load(!each.active)"/>
+ </listcell>
+ </listitem>
+ </template>
+ </listbox>
+ </center>
+ </borderlayout>
+
+ </window>
+</zk>
\ No newline at end of file
--- /dev/null
+<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
+<zk xmlns:c="client">
+ <div viewModel="@id('vm') @init('hu.user.lis.ui.view.SupplierViewModel')"
+ style="height: 100%;width: 100%; display: flex; justify-content: center;">
+ <window title="Szállító" border="true"
+ style="height: 50%; width: 50%; position: relative; position: absolute; top: 50%; transform: translate(0, -50%);">
+ <vlayout>
+ <hlayout>
+ <bandbox id="bd" autodrop="true" iconSclass="z-icon-sort-down"
+ value="@load(vm.selectedSupplier) @converter('hu.user.lis.ui.converter.SupplierToNameConverter')"
+ onChanging="@command('onBandChanging')" onOpen="@command('onBandOpen')">
+ <attribute c:name="_doKeyDown">
+ <![CDATA[
+ function (evt) {
+ var keyCode = evt.keyCode;
+ console.log(keyCode);
+ if (keyCode == 13){
+ zk.$("$bd").close();
+ zk.$("$bd").focus();
+ return;
+ }
+ if (keyCode == 40){
+ if (!zk.$("$bd").isOpen()) {
+ zk.$("$bd").open();
+ zAu.send(new zk.Event(zk.Widget.$('$bd'), "onOpen", {'open': true}, {toServer:true}));
+ }
+ zk.$("$bd-list").focus();
+ return;
+ }
+ if (keyCode == 27){
+ zk.$("$bd").close()
+ zk.$("$bd").focus();
+ return;
+ }
+ }
+ ]]>
+ </attribute>
+ <bandpopup>
+ <listbox id="bd-list" height="250px" width="450px"
+ model="@bind(vm.suppliersSimpleDataModel)"
+ selectedItem="@bind(vm.selectedSupplier)"
+ onClick="bd.close()"
+ onDoubleClick="bd.close()">
+ <listhead visible="false">
+ <listheader label="id" vflex="min"/>
+ <listheader label="name" vflex="max"/>
+ <listheader label="zip" vflex="min"/>
+ </listhead>
+ <template name="model">
+ <listitem>
+ <listcell label="@load(each.id)"/>
+ <listcell label="@load(each.name)"/>
+ <listcell label="@load(each.zipCode)"/>
+ </listitem>
+ </template>
+ </listbox>
+ </bandpopup>
+ </bandbox>
+ <button iconSclass="z-icon-search-plus" onClick="@command('onPopupSuppliers')"/>
+ </hlayout>
+
+ <hlayout>
+ <label value="Kiválasztott azonosító: "/>
+ <label value="@load(vm.selectedSupplierId)"/>
+ </hlayout>
+ </vlayout>
+ </window>
+ <!-- <combobox sclass="ten columns" model="@bind(m.supplierListModel)" selectedItem="@bind(m.selectedSupplier)"-->
+ <!-- autodrop="true" buttonVisible="true">-->
+ <!-- </combobox>-->
+
+ </div>
+</zk>
\ No newline at end of file
</listfoot>
<template name="model">
<listitem>
- <listcell label="@load(empty each.name ? each.template : each.name)"/>
+ <listcell label="@load(each.name)"/>
</listitem>
</template>
</listbox>
<south flex="true" style="text-align: right; padding: 10px">
<hlayout>
<button label="Bezár" onClick="@command('onCloseWindow', target=supplierPopup, select=false)"
+ />
+ <button label="Kiválaszt" onClick="@command('onCloseWindow', target=supplierPopup, select=true)"
disabled="@load(vm.selectedSupplier)"/>
- <button label="Kiválaszt" onClick="@command('onCloseWindow', target=supplierPopup, select=true)"/>
</hlayout>
</south>
</borderlayout>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
- <!-- lookup parent from repository -->
<relativePath/>
</parent>
<repositories>
<version>2.19.0</version>
</dependency>
<!-- <dependency>-->
- <!-- <groupId>org.springframework</groupId>-->
- <!-- <artifactId>spring-context</artifactId>-->
- <!-- </dependency>-->
- <!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-devtools</artifactId>-->
<!-- <optional>true</optional>-->
<!-- </dependency>-->
-
</dependencies>
</project>