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

Loading bpmn.io

89dinet188.114.110.417p02rsJan 29, 2021 2:06:16 PMlink

resources

index.zulzul<zk> <style> #canvas { height: 100%; padding: 0; margin: 0; } </style> <window border="normal" title="hello" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.TestComposer')"> <script src="https://unpkg.com/[email protected]/dist/bpmn-viewer.development.js"></script> <script src="https://unpkg.com/[email protected]/dist/jquery.js"></script> <button label="load bpmn" onClick="@command('onFileBpmn')" /> <div id="canvas"></div> <script><![CDATA[ var bpmnViewer = new BpmnJS({ container: '#canvas' }); //async function openDiagram(diagramUrl) { try { await bpmnViewer.importXML(diagramUrl); var canvas = bpmnViewer.get('canvas'); canvas.zoom('fit-viewport'); } catch (err) { console.log('could not import BPMN 2.0 diagram', err); alert('could not import BPMN 2.0 diagram'); } } function openFileDiagram(uri) { try { bpmnViewer.importXML(uri); var canvas = bpmnViewer.get('canvas'); canvas.zoom('fit-viewport'); } catch (err) { console.log('could not import BPMN 2.0 diagram', err); alert('could not import BPMN 2.0 diagram'); } } ]]></script> </window> </zk> TestComposer.javajavaimport java.io.*; import java.net.*; import org.zkoss.bind.annotation.Command; import org.zkoss.zk.ui.*; import org.zkoss.zk.ui.event.*; import org.zkoss.zk.ui.util.*; import org.zkoss.zk.ui.ext.*; import org.zkoss.zk.au.*; import org.zkoss.zk.au.out.*; import org.zkoss.zul.*; public class TestComposer { private static final String diagram = "<?xml version='1.0' encoding='UTF-8'?><bpmn2:definitions xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:bpmn2='http://www.omg.org/spec/BPMN/20100524/MODEL' xmlns:bpmndi='http://www.omg.org/spec/BPMN/20100524/DI' xmlns:dc='http://www.omg.org/spec/DD/20100524/DC' xmlns:di='http://www.omg.org/spec/DD/20100524/DI' xmlns:drools='http://www.jboss.org/drools' xmlns='http://www.jboss.org/drools' xmlns:java='http://www.java.com/javaTypes' xsi:schemaLocation='http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd' exporter='org.eclipse.bpmn2.modeler.core' exporterVersion='1.3.3.Final-v20170221-1647-B60' expressionLanguage='http://www.mvel.org/2.0' targetNamespace='http://www.jboss.org/drools' typeLanguage='http://www.java.com/javaTypes'><bpmn2:process id='cat.dinet.xemicals.clp.PrecautionaryStatementsFlow' drools:version='1' drools:packageName='cat.dinet.xemicals.clp' drools:adHoc='false' name='PrecautionaryStatementsFlow' isExecutable='true'><bpmn2:businessRuleTask id='BusinessRuleTask_1' drools:ruleFlowGroup='PrecautionaryStatements' name='Assign Precautionary Statements'><bpmn2:extensionElements><drools:metaData name='elementname'><drools:metaValue><![CDATA[Assign Precautionary Statements]]></drools:metaValue></drools:metaData><drools:onExit-script scriptFormat='http://www.java.com/java'/><drools:onEntry-script scriptFormat='http://www.java.com/java'/></bpmn2:extensionElements><bpmn2:incoming>SequenceFlow_1</bpmn2:incoming><bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing></bpmn2:businessRuleTask><bpmn2:startEvent id='StartEvent_2' name='StartProcess'><bpmn2:extensionElements><drools:metaData name='elementname'><drools:metaValue><![CDATA[StartProcess]]></drools:metaValue></drools:metaData></bpmn2:extensionElements><bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing></bpmn2:startEvent><bpmn2:endEvent id='EndEvent_2' name='End'><bpmn2:extensionElements><drools:metaData name='elementname'><drools:metaValue><![CDATA[End]]></drools:metaValue></drools:metaData></bpmn2:extensionElements><bpmn2:incoming>SequenceFlow_4</bpmn2:incoming><bpmn2:terminateEventDefinition id='TerminateEventDefinition_1'/></bpmn2:endEvent><bpmn2:sequenceFlow id='SequenceFlow_1' drools:priority='1' sourceRef='StartEvent_2' targetRef='BusinessRuleTask_1'/><bpmn2:sequenceFlow id='SequenceFlow_4' drools:priority='1' sourceRef='BusinessRuleTask_1' targetRef='EndEvent_2'/></bpmn2:process><bpmndi:BPMNDiagram id='BPMNDiagram_1' name='Default Process Diagram'><bpmndi:BPMNPlane id='BPMNPlane_1' bpmnElement='cat.dinet.xemicals.clp.PrecautionaryStatementsFlow'><bpmndi:BPMNShape id='BPMNShape_BusinessRuleTask_1' bpmnElement='BusinessRuleTask_1' isExpanded='true'><dc:Bounds height='50.0' width='110.0' x='270.0' y='93.0'/><bpmndi:BPMNLabel id='BPMNLabel_3'><dc:Bounds height='45.0' width='81.0' x='284.0' y='95.0'/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape id='BPMNShape_StartEvent_1' bpmnElement='StartEvent_2'><dc:Bounds height='36.0' width='36.0' x='101.0' y='100.0'/><bpmndi:BPMNLabel><dc:Bounds height='15.0' width='71.0' x='84.0' y='136.0'/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNShape id='BPMNShape_EndEvent_1' bpmnElement='EndEvent_2'><dc:Bounds height='36.0' width='36.0' x='450.0' y='100.0'/><bpmndi:BPMNLabel><dc:Bounds height='15.0' width='22.0' x='457.0' y='136.0'/></bpmndi:BPMNLabel></bpmndi:BPMNShape><bpmndi:BPMNEdge id='BPMNEdge_SequenceFlow_1' bpmnElement='SequenceFlow_1' sourceElement='BPMNShape_StartEvent_1' targetElement='BPMNShape_BusinessRuleTask_1'><di:waypoint xsi:type='dc:Point' x='137.0' y='118.0'/><di:waypoint xsi:type='dc:Point' x='203.0' y='118.0'/><di:waypoint xsi:type='dc:Point' x='270.0' y='118.0'/><bpmndi:BPMNLabel/></bpmndi:BPMNEdge><bpmndi:BPMNEdge id='BPMNEdge_SequenceFlow_4' bpmnElement='SequenceFlow_4' sourceElement='BPMNShape_BusinessRuleTask_1' targetElement='BPMNShape_EndEvent_1'><di:waypoint xsi:type='dc:Point' x='380.0' y='118.0'/><di:waypoint xsi:type='dc:Point' x='415.0' y='118.0'/><di:waypoint xsi:type='dc:Point' x='450.0' y='118.0'/><bpmndi:BPMNLabel/></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram></bpmn2:definitions>"; @Command public void onLoadBpmn() { String command = String.format("openDiagram(\"%s\")", StringUtils.encodeHtml(diagram)); Clients.evalJavaScript(command); } @Command public void onFileBpmn() { File file = new File("bpmn.zul"); URL url = null; try{ url = file.toURL(); } catch (MalformedURLException me){ } String command = String.format("openFileDiagram(\"%s\")", url.toString()); Clients.evalJavaScript(command); } public void doAfterCompose(Component comp) throws Exception { } public void onClick$btn(Event e) throws InterruptedException{ Messagebox.show("Hi btn"); } } StringUtils.javajavaimport java.util.HashMap; public class StringUtils { private static final HashMap<Character, String> htmlEncodeChars = new HashMap<Character, String>(); static { // Special characters for HTML htmlEncodeChars.put('\u0026', "&amp;"); htmlEncodeChars.put('\u003C', "&lt;"); htmlEncodeChars.put('\u003E', "&gt;"); htmlEncodeChars.put('\u0022', "&quot;"); htmlEncodeChars.put('\u0152', "&OElig;"); htmlEncodeChars.put('\u0153', "&oelig;"); htmlEncodeChars.put('\u0160', "&Scaron;"); htmlEncodeChars.put('\u0161', "&scaron;"); htmlEncodeChars.put('\u0178', "&Yuml;"); htmlEncodeChars.put('\u02C6', "&circ;"); htmlEncodeChars.put('\u02DC', "&tilde;"); htmlEncodeChars.put('\u2002', "&ensp;"); htmlEncodeChars.put('\u2003', "&emsp;"); htmlEncodeChars.put('\u2009', "&thinsp;"); htmlEncodeChars.put('\u200C', "&zwnj;"); htmlEncodeChars.put('\u200D', "&zwj;"); htmlEncodeChars.put('\u200E', "&lrm;"); htmlEncodeChars.put('\u200F', "&rlm;"); htmlEncodeChars.put('\u2013', "&ndash;"); htmlEncodeChars.put('\u2014', "&mdash;"); htmlEncodeChars.put('\u2018', "&lsquo;"); htmlEncodeChars.put('\u2019', "&rsquo;"); htmlEncodeChars.put('\u201A', "&sbquo;"); htmlEncodeChars.put('\u201C', "&ldquo;"); htmlEncodeChars.put('\u201D', "&rdquo;"); htmlEncodeChars.put('\u201E', "&bdquo;"); htmlEncodeChars.put('\u2020', "&dagger;"); htmlEncodeChars.put('\u2021', "&Dagger;"); htmlEncodeChars.put('\u2030', "&permil;"); htmlEncodeChars.put('\u2039', "&lsaquo;"); htmlEncodeChars.put('\u203A', "&rsaquo;"); htmlEncodeChars.put('\u20AC', "&euro;"); // Character entity references for ISO 8859-1 characters htmlEncodeChars.put('\u00A0', "&nbsp;"); htmlEncodeChars.put('\u00A1', "&iexcl;"); htmlEncodeChars.put('\u00A2', "&cent;"); htmlEncodeChars.put('\u00A3', "&pound;"); htmlEncodeChars.put('\u00A4', "&curren;"); htmlEncodeChars.put('\u00A5', "&yen;"); htmlEncodeChars.put('\u00A6', "&brvbar;"); htmlEncodeChars.put('\u00A7', "&sect;"); htmlEncodeChars.put('\u00A8', "&uml;"); htmlEncodeChars.put('\u00A9', "&copy;"); htmlEncodeChars.put('\u00AA', "&ordf;"); htmlEncodeChars.put('\u00AB', "&laquo;"); htmlEncodeChars.put('\u00AC', "&not;"); htmlEncodeChars.put('\u00AD', "&shy;"); htmlEncodeChars.put('\u00AE', "&reg;"); htmlEncodeChars.put('\u00AF', "&macr;"); htmlEncodeChars.put('\u00B0', "&deg;"); htmlEncodeChars.put('\u00B1', "&plusmn;"); htmlEncodeChars.put('\u00B2', "&sup2;"); htmlEncodeChars.put('\u00B3', "&sup3;"); htmlEncodeChars.put('\u00B4', "&acute;"); htmlEncodeChars.put('\u00B5', "&micro;"); htmlEncodeChars.put('\u00B6', "&para;"); htmlEncodeChars.put('\u00B7', "&middot;"); htmlEncodeChars.put('\u00B8', "&cedil;"); htmlEncodeChars.put('\u00B9', "&sup1;"); htmlEncodeChars.put('\u00BA', "&ordm;"); htmlEncodeChars.put('\u00BB', "&raquo;"); htmlEncodeChars.put('\u00BC', "&frac14;"); htmlEncodeChars.put('\u00BD', "&frac12;"); htmlEncodeChars.put('\u00BE', "&frac34;"); htmlEncodeChars.put('\u00BF', "&iquest;"); htmlEncodeChars.put('\u00C0', "&Agrave;"); htmlEncodeChars.put('\u00C1', "&Aacute;"); htmlEncodeChars.put('\u00C2', "&Acirc;"); htmlEncodeChars.put('\u00C3', "&Atilde;"); htmlEncodeChars.put('\u00C4', "&Auml;"); htmlEncodeChars.put('\u00C5', "&Aring;"); htmlEncodeChars.put('\u00C6', "&AElig;"); htmlEncodeChars.put('\u00C7', "&Ccedil;"); htmlEncodeChars.put('\u00C8', "&Egrave;"); htmlEncodeChars.put('\u00C9', "&Eacute;"); htmlEncodeChars.put('\u00CA', "&Ecirc;"); htmlEncodeChars.put('\u00CB', "&Euml;"); htmlEncodeChars.put('\u00CC', "&Igrave;"); htmlEncodeChars.put('\u00CD', "&Iacute;"); htmlEncodeChars.put('\u00CE', "&Icirc;"); htmlEncodeChars.put('\u00CF', "&Iuml;"); htmlEncodeChars.put('\u00D0', "&ETH;"); htmlEncodeChars.put('\u00D1', "&Ntilde;"); htmlEncodeChars.put('\u00D2', "&Ograve;"); htmlEncodeChars.put('\u00D3', "&Oacute;"); htmlEncodeChars.put('\u00D4', "&Ocirc;"); htmlEncodeChars.put('\u00D5', "&Otilde;"); htmlEncodeChars.put('\u00D6', "&Ouml;"); htmlEncodeChars.put('\u00D7', "&times;"); htmlEncodeChars.put('\u00D8', "&Oslash;"); htmlEncodeChars.put('\u00D9', "&Ugrave;"); htmlEncodeChars.put('\u00DA', "&Uacute;"); htmlEncodeChars.put('\u00DB', "&Ucirc;"); htmlEncodeChars.put('\u00DC', "&Uuml;"); htmlEncodeChars.put('\u00DD', "&Yacute;"); htmlEncodeChars.put('\u00DE', "&THORN;"); htmlEncodeChars.put('\u00DF', "&szlig;"); htmlEncodeChars.put('\u00E0', "&agrave;"); htmlEncodeChars.put('\u00E1', "&aacute;"); htmlEncodeChars.put('\u00E2', "&acirc;"); htmlEncodeChars.put('\u00E3', "&atilde;"); htmlEncodeChars.put('\u00E4', "&auml;"); htmlEncodeChars.put('\u00E5', "&aring;"); htmlEncodeChars.put('\u00E6', "&aelig;"); htmlEncodeChars.put('\u00E7', "&ccedil;"); htmlEncodeChars.put('\u00E8', "&egrave;"); htmlEncodeChars.put('\u00E9', "&eacute;"); htmlEncodeChars.put('\u00EA', "&ecirc;"); htmlEncodeChars.put('\u00EB', "&euml;"); htmlEncodeChars.put('\u00EC', "&igrave;"); htmlEncodeChars.put('\u00ED', "&iacute;"); htmlEncodeChars.put('\u00EE', "&icirc;"); htmlEncodeChars.put('\u00EF', "&iuml;"); htmlEncodeChars.put('\u00F0', "&eth;"); htmlEncodeChars.put('\u00F1', "&ntilde;"); htmlEncodeChars.put('\u00F2', "&ograve;"); htmlEncodeChars.put('\u00F3', "&oacute;"); htmlEncodeChars.put('\u00F4', "&ocirc;"); htmlEncodeChars.put('\u00F5', "&otilde;"); htmlEncodeChars.put('\u00F6', "&ouml;"); htmlEncodeChars.put('\u00F7', "&divide;"); htmlEncodeChars.put('\u00F8', "&oslash;"); htmlEncodeChars.put('\u00F9', "&ugrave;"); htmlEncodeChars.put('\u00FA', "&uacute;"); htmlEncodeChars.put('\u00FB', "&ucirc;"); htmlEncodeChars.put('\u00FC', "&uuml;"); htmlEncodeChars.put('\u00FD', "&yacute;"); htmlEncodeChars.put('\u00FE', "&thorn;"); htmlEncodeChars.put('\u00FF', "&yuml;"); // Mathematical, Greek and Symbolic characters for HTML htmlEncodeChars.put('\u0192', "&fnof;"); htmlEncodeChars.put('\u0391', "&Alpha;"); htmlEncodeChars.put('\u0392', "&Beta;"); htmlEncodeChars.put('\u0393', "&Gamma;"); htmlEncodeChars.put('\u0394', "&Delta;"); htmlEncodeChars.put('\u0395', "&Epsilon;"); htmlEncodeChars.put('\u0396', "&Zeta;"); htmlEncodeChars.put('\u0397', "&Eta;"); htmlEncodeChars.put('\u0398', "&Theta;"); htmlEncodeChars.put('\u0399', "&Iota;"); htmlEncodeChars.put('\u039A', "&Kappa;"); htmlEncodeChars.put('\u039B', "&Lambda;"); htmlEncodeChars.put('\u039C', "&Mu;"); htmlEncodeChars.put('\u039D', "&Nu;"); htmlEncodeChars.put('\u039E', "&Xi;"); htmlEncodeChars.put('\u039F', "&Omicron;"); htmlEncodeChars.put('\u03A0', "&Pi;"); htmlEncodeChars.put('\u03A1', "&Rho;"); htmlEncodeChars.put('\u03A3', "&Sigma;"); htmlEncodeChars.put('\u03A4', "&Tau;"); htmlEncodeChars.put('\u03A5', "&Upsilon;"); htmlEncodeChars.put('\u03A6', "&Phi;"); htmlEncodeChars.put('\u03A7', "&Chi;"); htmlEncodeChars.put('\u03A8', "&Psi;"); htmlEncodeChars.put('\u03A9', "&Omega;"); htmlEncodeChars.put('\u03B1', "&alpha;"); htmlEncodeChars.put('\u03B2', "&beta;"); htmlEncodeChars.put('\u03B3', "&gamma;"); htmlEncodeChars.put('\u03B4', "&delta;"); htmlEncodeChars.put('\u03B5', "&epsilon;"); htmlEncodeChars.put('\u03B6', "&zeta;"); htmlEncodeChars.put('\u03B7', "&eta;"); htmlEncodeChars.put('\u03B8', "&theta;"); htmlEncodeChars.put('\u03B9', "&iota;"); htmlEncodeChars.put('\u03BA', "&kappa;"); htmlEncodeChars.put('\u03BB', "&lambda;"); htmlEncodeChars.put('\u03BC', "&mu;"); htmlEncodeChars.put('\u03BD', "&nu;"); htmlEncodeChars.put('\u03BE', "&xi;"); htmlEncodeChars.put('\u03BF', "&omicron;"); htmlEncodeChars.put('\u03C0', "&pi;"); htmlEncodeChars.put('\u03C1', "&rho;"); htmlEncodeChars.put('\u03C2', "&sigmaf;"); htmlEncodeChars.put('\u03C3', "&sigma;"); htmlEncodeChars.put('\u03C4', "&tau;"); htmlEncodeChars.put('\u03C5', "&upsilon;"); htmlEncodeChars.put('\u03C6', "&phi;"); htmlEncodeChars.put('\u03C7', "&chi;"); htmlEncodeChars.put('\u03C8', "&psi;"); htmlEncodeChars.put('\u03C9', "&omega;"); htmlEncodeChars.put('\u03D1', "&thetasym;"); htmlEncodeChars.put('\u03D2', "&upsih;"); htmlEncodeChars.put('\u03D6', "&piv;"); htmlEncodeChars.put('\u2022', "&bull;"); htmlEncodeChars.put('\u2026', "&hellip;"); htmlEncodeChars.put('\u2032', "&prime;"); htmlEncodeChars.put('\u2033', "&Prime;"); htmlEncodeChars.put('\u203E', "&oline;"); htmlEncodeChars.put('\u2044', "&frasl;"); htmlEncodeChars.put('\u2118', "&weierp;"); htmlEncodeChars.put('\u2111', "&image;"); htmlEncodeChars.put('\u211C', "&real;"); htmlEncodeChars.put('\u2122', "&trade;"); htmlEncodeChars.put('\u2135', "&alefsym;"); htmlEncodeChars.put('\u2190', "&larr;"); htmlEncodeChars.put('\u2191', "&uarr;"); htmlEncodeChars.put('\u2192', "&rarr;"); htmlEncodeChars.put('\u2193', "&darr;"); htmlEncodeChars.put('\u2194', "&harr;"); htmlEncodeChars.put('\u21B5', "&crarr;"); htmlEncodeChars.put('\u21D0', "&lArr;"); htmlEncodeChars.put('\u21D1', "&uArr;"); htmlEncodeChars.put('\u21D2', "&rArr;"); htmlEncodeChars.put('\u21D3', "&dArr;"); htmlEncodeChars.put('\u21D4', "&hArr;"); htmlEncodeChars.put('\u2200', "&forall;"); htmlEncodeChars.put('\u2202', "&part;"); htmlEncodeChars.put('\u2203', "&exist;"); htmlEncodeChars.put('\u2205', "&empty;"); htmlEncodeChars.put('\u2207', "&nabla;"); htmlEncodeChars.put('\u2208', "&isin;"); htmlEncodeChars.put('\u2209', "&notin;"); htmlEncodeChars.put('\u220B', "&ni;"); htmlEncodeChars.put('\u220F', "&prod;"); htmlEncodeChars.put('\u2211', "&sum;"); htmlEncodeChars.put('\u2212', "&minus;"); htmlEncodeChars.put('\u2217', "&lowast;"); htmlEncodeChars.put('\u221A', "&radic;"); htmlEncodeChars.put('\u221D', "&prop;"); htmlEncodeChars.put('\u221E', "&infin;"); htmlEncodeChars.put('\u2220', "&ang;"); htmlEncodeChars.put('\u2227', "&and;"); htmlEncodeChars.put('\u2228', "&or;"); htmlEncodeChars.put('\u2229', "&cap;"); htmlEncodeChars.put('\u222A', "&cup;"); htmlEncodeChars.put('\u222B', "&int;"); htmlEncodeChars.put('\u2234', "&there4;"); htmlEncodeChars.put('\u223C', "&sim;"); htmlEncodeChars.put('\u2245', "&cong;"); htmlEncodeChars.put('\u2248', "&asymp;"); htmlEncodeChars.put('\u2260', "&ne;"); htmlEncodeChars.put('\u2261', "&equiv;"); htmlEncodeChars.put('\u2264', "&le;"); htmlEncodeChars.put('\u2265', "&ge;"); htmlEncodeChars.put('\u2282', "&sub;"); htmlEncodeChars.put('\u2283', "&sup;"); htmlEncodeChars.put('\u2284', "&nsub;"); htmlEncodeChars.put('\u2286', "&sube;"); htmlEncodeChars.put('\u2287', "&supe;"); htmlEncodeChars.put('\u2295', "&oplus;"); htmlEncodeChars.put('\u2297', "&otimes;"); htmlEncodeChars.put('\u22A5', "&perp;"); htmlEncodeChars.put('\u22C5', "&sdot;"); htmlEncodeChars.put('\u2308', "&lceil;"); htmlEncodeChars.put('\u2309', "&rceil;"); htmlEncodeChars.put('\u230A', "&lfloor;"); htmlEncodeChars.put('\u230B', "&rfloor;"); htmlEncodeChars.put('\u2329', "&lang;"); htmlEncodeChars.put('\u232A', "&rang;"); htmlEncodeChars.put('\u25CA', "&loz;"); htmlEncodeChars.put('\u2660', "&spades;"); htmlEncodeChars.put('\u2663', "&clubs;"); htmlEncodeChars.put('\u2665', "&hearts;"); htmlEncodeChars.put('\u2666', "&diams;"); } private StringUtils() { } public static String encodeHtml(String source) { return encode(source, htmlEncodeChars); } private static String encode(String source, HashMap<Character, String> encodingTable) { if (null == source) { return null; } if (null == encodingTable) { return source; } StringBuffer encoded_string = null; char[] string_to_encode_array = source.toCharArray(); int last_match = -1; int difference = 0; for (int i = 0; i < string_to_encode_array.length; i++) { char char_to_encode = string_to_encode_array[i]; if (encodingTable.containsKey(char_to_encode)) { if (null == encoded_string) { encoded_string = new StringBuffer(source.length()); } difference = i - (last_match + 1); if (difference > 0) { encoded_string.append(string_to_encode_array, last_match + 1, difference); } encoded_string.append(encodingTable.get(char_to_encode)); last_match = i; } } if (null == encoded_string) { return source; } else { difference = string_to_encode_array.length - (last_match + 1); if (difference > 0) { encoded_string.append(string_to_encode_array, last_match + 1, difference); } return encoded_string.toString(); } } } bpmn.zulzul<?xml version="1.0" encoding="UTF-8"?> <!-- origin at X=0.0 Y=0.0 --> <bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" xmlns="http://www.jboss.org/drools" xmlns:java="http://www.java.com/javaTypes" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd" exporter="org.eclipse.bpmn2.modeler.core" exporterVersion="1.3.3.Final-v20170221-1647-B60" expressionLanguage="http://www.mvel.org/2.0" targetNamespace="http://www.jboss.org/drools" typeLanguage="http://www.java.com/javaTypes"> <bpmn2:process id="cat.dinet.xemicals.clp.PrecautionaryStatementsFlow" drools:version="1" drools:packageName="cat.dinet.xemicals.clp" drools:adHoc="false" name="PrecautionaryStatementsFlow" isExecutable="true"> <bpmn2:businessRuleTask id="BusinessRuleTask_1" drools:ruleFlowGroup="PrecautionaryStatements" name="Assign Precautionary Statements"> <bpmn2:extensionElements> <drools:metaData name="elementname"> <drools:metaValue><![CDATA[Assign Precautionary Statements]]></drools:metaValue> </drools:metaData> <drools:onExit-script scriptFormat="http://www.java.com/java"/> <drools:onEntry-script scriptFormat="http://www.java.com/java"/> </bpmn2:extensionElements> <bpmn2:incoming>SequenceFlow_1</bpmn2:incoming> <bpmn2:outgoing>SequenceFlow_4</bpmn2:outgoing> </bpmn2:businessRuleTask> <bpmn2:startEvent id="StartEvent_2" name="StartProcess"> <bpmn2:extensionElements> <drools:metaData name="elementname"> <drools:metaValue><![CDATA[StartProcess]]></drools:metaValue> </drools:metaData> </bpmn2:extensionElements> <bpmn2:outgoing>SequenceFlow_1</bpmn2:outgoing> </bpmn2:startEvent> <bpmn2:endEvent id="EndEvent_2" name="End"> <bpmn2:extensionElements> <drools:metaData name="elementname"> <drools:metaValue><![CDATA[End]]></drools:metaValue> </drools:metaData> </bpmn2:extensionElements> <bpmn2:incoming>SequenceFlow_4</bpmn2:incoming> <bpmn2:terminateEventDefinition id="TerminateEventDefinition_1"/> </bpmn2:endEvent> <bpmn2:sequenceFlow id="SequenceFlow_1" drools:priority="1" sourceRef="StartEvent_2" targetRef="BusinessRuleTask_1"/> <bpmn2:sequenceFlow id="SequenceFlow_4" drools:priority="1" sourceRef="BusinessRuleTask_1" targetRef="EndEvent_2"/> </bpmn2:process> <bpmndi:BPMNDiagram id="BPMNDiagram_1" name="Default Process Diagram"> <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="cat.dinet.xemicals.clp.PrecautionaryStatementsFlow"> <bpmndi:BPMNShape id="BPMNShape_BusinessRuleTask_1" bpmnElement="BusinessRuleTask_1" isExpanded="true"> <dc:Bounds height="50.0" width="110.0" x="270.0" y="93.0"/> <bpmndi:BPMNLabel id="BPMNLabel_3"> <dc:Bounds height="45.0" width="81.0" x="284.0" y="95.0"/> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="BPMNShape_StartEvent_1" bpmnElement="StartEvent_2"> <dc:Bounds height="36.0" width="36.0" x="101.0" y="100.0"/> <bpmndi:BPMNLabel> <dc:Bounds height="15.0" width="71.0" x="84.0" y="136.0"/> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="BPMNShape_EndEvent_1" bpmnElement="EndEvent_2"> <dc:Bounds height="36.0" width="36.0" x="450.0" y="100.0"/> <bpmndi:BPMNLabel> <dc:Bounds height="15.0" width="22.0" x="457.0" y="136.0"/> </bpmndi:BPMNLabel> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="BPMNShape_StartEvent_1" targetElement="BPMNShape_BusinessRuleTask_1"> <di:waypoint xsi:type="dc:Point" x="137.0" y="118.0"/> <di:waypoint xsi:type="dc:Point" x="203.0" y="118.0"/> <di:waypoint xsi:type="dc:Point" x="270.0" y="118.0"/> <bpmndi:BPMNLabel/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_BusinessRuleTask_1" targetElement="BPMNShape_EndEvent_1"> <di:waypoint xsi:type="dc:Point" x="380.0" y="118.0"/> <di:waypoint xsi:type="dc:Point" x="415.0" y="118.0"/> <di:waypoint xsi:type="dc:Point" x="450.0" y="118.0"/> <bpmndi:BPMNLabel/> </bpmndi:BPMNEdge> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </bpmn2:definitions>