In einer übernommenen RESTful Spring-Boot-Web-Anwendung gibt es einige Einschränkungen, die ich derzeit nicht ändern kann. Der Code verwendet teilweise Java 1.6, der Rest ist in Java 17 geschrieben. Und das ZK-Studio hat die Version 5.0 und kann nicht ohne Probleme aktualisiert werden. Dies war zumindest die Aussage meines Vorgängers.
Der Server läuft auf einer VM mit Linux. Was ich tun möchte, ist, das Kalender-Widget des ZK-Studios um eine Spalte für die Kalenderwoche zu erweitern. Dieses aktualisierte Widget ist bereits ab Version 6.5 integriert, aber ich bin an v5.0 gebunden.
Um es selbst zu implementieren, habe ich folgenden Änderungen vorgenommen:
…\workflow\zk-components.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<zk>
<component>
<component-name>customCalendar</component-name>
<component-class>at.cps.oflow.utils.CustomCalendar</component-class>
</component>
</zk>
…\workflow\240\la_erfassung.zul:
<zk>
<import src="../zk-components.xml"/>
<component>
<component-name>customCalendar</component-name>
<component-class>at.cps.oflow.utils.CustomCalendar</component-class>
</component>
<window border="none" id="ls_erfassung">
<grid>
<row>
<cell>
<label>Date:</label>
</cell>
<cell>
<customCalendar id="datum" value="@{actcontroller.actVars.datum}" constraint="no empty"/>
</cell>
</row>
…
</grid>
</window>
</zk>
CustomCalendar.java:
package at.cps.oflow.utils;
import java.io.IOException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.zkoss.zk.ui.sys.*;
public class CustomCalendar extends org.zkoss.zul.Calendar {
@Override
protected void renderProperties(final ContentRenderer renderer) throws IOException {
super.renderProperties(renderer);
// Add code for the week of year
final Calendar cal = new GregorianCalendar();
final int week = cal.get(Calendar.WEEK_OF_YEAR);
renderer.render("weekNumber", week);
}
}
Offensichtlich habe ich etwas vergessen. Es ist mein erster Kodierungsversuch mit dem MVVM-Paradigma und dem ZK-Studio. Als ich die Anwendung ausführte, wurde ein Fehler ausgegeben, der besagt, dass die Datei ..\zk-components.xml
nicht gefunden werden kann:
Daher habe ich beschlossen, den Code direkt in die ZUL-Datei einzufügen:
…\workflow\240\la_erfassung.zul:
<zk>
<!--import src="../zk-components.xml"/-->
<component>
<component-name>customCalendar</component-name>
<component-class>at.cps.oflow.utils.CustomCalendar</component-class>
</component>
<window border="none" id="ls_erfassung">
<grid>
<row>
<cell>
<label>Date:</label>
</cell>
<cell>
<customCalendar id="datum" value="@{actcontroller.actVars.datum}" constraint="no empty"/>
</cell>
</row>
…
</grid>
</window>
</zk>
Aber ich erhalte immer noch eine Fehlermeldung:
Spalte 3 Zeile 16 in der ZUL-Datei entspricht dem Ende des Tags . Könnt ihr mir sagen, was ich da vergessen habe, hinzuzufügen?