आप यूई में एक ही कक्षा पदानुक्रम को डुप्लिकेट कर सकते हैं।
public class TaskFormPanel<T extends Task> extends Panel {
public TaskFormPanel(String id, IModel<T> model)
super(id, new CompoundPropertyModel(model));
add(new TextField("d"));
add(new TextField("e));
add(new Button("submit) {
(...)
}
}
}
public class Task1FormPanel extends TaskFormPanel<Task1> {
public TaskFormPanel(String id, IModel<Task1> model)
super(id, model);
add(new TextField("a"));
add(new TextField("b));
add(new TextField("c"));
}
}
public class Task2FormPanel extends TaskFormPanel<Task2> {
public TaskFormPanel(String id, IModel<Task1> model)
super(id, model);
add(new TextField("x"));
add(new TextField("y));
add(new TextField("z"));
}
}
और HTML फ़ाइलों:
TaskFormPanel:
<wicket:panel>
<wicket:child/>
<label>d</label> <input wicket:id="d">
<label>e</label> <input wicket:id="e">
<input type="submit" wicket:id="submit"/>
</wicket:panel>
Task1Panel.html:
<wicket:extend>
<label>a</label> <input wicket:id="a">
<label>b</label> <input wicket:id="b">
<label>c</label> <input wicket:id="c">
</wicket:extend>
Task2Panel.html:
<wicket:extend>
<label>x</label> <input wicket:id="x">
<label>y</label> <input wicket:id="y">
<label>z</label> <input wicket:id="z">
</wicket:extend>
नोट: सुनिश्चित करें कि आप कार्य ऑब्जेक्ट्स को लपेटने के लिए कुछ loadabledetachablemodel का उपयोग करते हैं, यदि उनमें किसी थ्रेड का संदर्भ होता है अन्यथा आप क्रमिकरण समस्याओं में भाग लेंगे। एक सिंगलटन रजिस्ट्री जो आपके कार्यों को संग्रहीत करती है और कुछ यादृच्छिक कुंजी द्वारा उन्हें वापस कर सकती है पर्याप्त है।
मुझे पूरा यकीन नहीं है कि मैं समस्या को समझता हूं। लेकिन एक तरफ के रूप में, यदि आप अपने कार्य ऑब्जेक्ट को मॉडल में डालने जा रहे हैं, तो वे थ्रेड को संदर्भित नहीं कर सकते क्योंकि मॉडल ऑब्जेक्ट्स को क्रमबद्ध होना चाहिए। – biziclop