I am having issue with getting the link item to be disabled in print preview window, even though I am disabling it via code.
In this code example, we have a textitem and linkitem in a form and they are enabled in the form, however they need to be disabled in print preview.
I am using the 3.0 nightly as of 6th March 2012 along with GWT 2.3 jars.
Sample code is attached. Any assistance is grately appreciated.
In this code example, we have a textitem and linkitem in a form and they are enabled in the form, however they need to be disabled in print preview.
I am using the 3.0 nightly as of 6th March 2012 along with GWT 2.3 jars.
Sample code is attached. Any assistance is grately appreciated.
Code:
public class GwtProject implements EntryPoint {
public void onModuleLoad() {
final VLayout layout = new VLayout();
final DynamicForm form = new DynamicForm();
form.setHeight(100);
form.setWidth(100);
final TextItem textItem = new TextItem();
textItem.setTitle("Name");
final LinkItem link = new LinkItem("dummylink");
link.setShowTitle(false);
link.setLinkTitle("this link should be disabled in print preview");
link.setValue("http://www.google.com");
form.setFields(textItem, link);
layout.addMember(form);
final IButton printPreviewButton = new IButton("Print Preview");
layout.addMember(printPreviewButton);
printPreviewButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(final ClickEvent event) {
disableOrEnableCanvas(layout, true);
final PrintPreviewCallback callback = new PrintPreviewCallback() {
@Override
public void execute(final PrintCanvas printCanvas, final PrintWindow printWindow) {
disableOrEnableCanvas(layout, false);
}
};
showPrintPreview("Print Preview", callback, layout);
}
});
layout.draw();
}
public static void showPrintPreview(final String title, final PrintPreviewCallback callback, final Canvas component, final Canvas... others) {
// final Canvas newCanvas = new Canvas("newCanvas");
// for (final Canvas c : component.getChildren()) {
// if (c instanceof DynamicForm) {
// final FormItem[] formItems = ((DynamicForm) c).getFields();
// for (final FormItem f : formItems) {
// if (f instanceof LinkItem) {
// continue;
// }
// // System.out.println("1");
// newCanvas.addChild(c);
// }
// } else {
// newCanvas.addChild(c);
// }
// }
final List<Canvas> components = new ArrayList<Canvas>();
Window printWindow = new Window();
components.add(component);
// components.add(newCanvas);
printWindow = new ModalWindow().getPrintPreviewWindow(750, 250);
printWindow.disable();
for (final Canvas canvas : others) {
canvas.disable();
components.add(canvas);
}
Canvas.showPrintPreview(components.toArray(new Canvas[components.size()]), null, title, callback, printWindow, "");
}
public static void disableOrEnableCanvas(final Layout layout, final boolean disableFormFields) {
final Canvas[] canvasArray = layout.getMembers();
for (final Canvas member : canvasArray) {
disableForm(member, disableFormFields);
}
}
public static void disableForm(final Canvas canvas, final boolean disableFormFields) {
if (canvas instanceof Layout) {
disableOrEnableCanvas((Layout) canvas, disableFormFields);
} else if (canvas instanceof DynamicForm) {
for (final FormItem field : ((DynamicForm) canvas).getFields()) {
if (field instanceof RadioGroupItem) {
((RadioGroupItem) field).setDisabled(disableFormFields);
}
if (field instanceof TextItem) {
System.out.println("TextItem:" + field.getTitle());
final TextItem txtItem = (TextItem) field;
txtItem.setDisabled(disableFormFields);
}
if (field instanceof LinkItem) {
final LinkItem linkItem = (LinkItem) field;
System.out.println("Link:" + linkItem.getTitle() + "=((DynamicForm) canvas)=" + ((DynamicForm) canvas).getID());
if (disableFormFields) {
((LinkItem) field).setDisabled(disableFormFields);
linkItem.setAttribute("readOnly", disableFormFields);
System.out.println("link disabled....");
linkItem.disable();
} else {
linkItem.enable();
System.out.println("link enabled....");
}
} else {
field.disable();
field.setAttribute("readOnly", disableFormFields);
}
}
}
}
class HelpCanvas extends Canvas {
private final String contents = "<b>Severity 1</b> - Critical problem<br>System is unavailable in production or " + "is corrupting data, and the error severely impacts the user's operations." + "<br><br><b>Severity 2</b> - Major problem<br>An important function of the system " + "is not available in production, and the user's operations are restricted." + "<br><br><b>Severity 3</b> - Minor problem<br>Inability to use a function of the " + "system occurs, but it does not seriously affect the user's operations.";
public HelpCanvas(final String id) {
setID(id);
setPadding(10);
setOverflow(Overflow.AUTO);
setContents(contents);
}
}
}
Comment