* @param duplicate If true then a copy of the model is displayed and not only the OK but also a Cancel button is displayed at the bottom of the winndow
* @return The created dialog window
*/
public ULCDialog popup(DataModel model, boolean duplicate, ULCDialogListener ulcDialogListener) {
ULCViewerFactory ulcFactory = application.getUlcFactory();
ULCDialogViewerFactory ulcDialogViewerFactory = new ULCDialogViewerFactory(ulcFactory.getClientResource());
ulcDialogViewerFactory.setUlcViewerCreatorMap(ulcFactory.getUlcViewerCreatorMap());
ulcDialogViewerFactory.startDialog();
try {
ULCDialog dialog = createDialog();
DataModel copy = null;
String fieldName = model.getFieldName();
if (fieldName != null) {
dialog.setTitle(ulcFactory.getClientResource().getLabel(fieldName));
}
if (duplicate) {
copy = model.duplicate(null, null);
}
DialogModel dialogModel = new DialogModel(ulcDialogViewerFactory, dialog, model, copy, ulcDialogListener);
ULCComponent editorPanel = ulcDialogViewerFactory.createDefaultUlcEditor(duplicate ? copy : model).getULCComponent(ulcDialogViewerFactory);
ULCComponent buttonPanel = ulcDialogViewerFactory.createDefaultUlcEditor(dialogModel).getULCComponent(ulcDialogViewerFactory);
ULCBoxPane boxPane = new ULCBoxPane(1, 0);
boxPane.add(ULCBoxPane.BOX_EXPAND_EXPAND, editorPanel);
boxPane.add(buttonPanel);