package com.eas.form; import java.util.logging.Level; import java.util.logging.Logger; import com.eas.client.CallbackAdapter; import com.eas.core.Utils; import com.eas.ui.DefaultUiReader; import com.eas.ui.PlatypusImageResource; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.xml.client.Element; /** * * @author mg */ public class FormReader extends DefaultUiReader { protected PlatypusWindow form; public FormReader(Element anElement, JavaScriptObject aModel) { super(anElement, aModel); } public PlatypusWindow getForm() { if(form == null){ form = new PlatypusWindow((Widget) viewWidget); form.setDefaultCloseOperation(Utils.getIntegerAttribute(element, "dco", "defaultCloseOperation", 2)); String iconImage = Utils.getAttribute(element, "i", "icon", null); if (iconImage != null && !iconImage.isEmpty()) { PlatypusImageResource.load(iconImage, new CallbackAdapter<ImageResource, String>() { @Override protected void doWork(ImageResource aResult) throws Exception { form.setIcon(aResult); } @Override public void onFailure(String reason) { Logger.getLogger(PlatypusWindow.class.getName()).log(Level.SEVERE, "Factory failed to load window title icon. " + reason); } }); } form.setTitle(Utils.getAttribute(element, "tl", "title", null)); form.setClosable(Utils.getBooleanAttribute(element, "cle", "closable", Boolean.TRUE)); form.setMaximizable(Utils.getBooleanAttribute(element, "mxe", "maximizable", Boolean.TRUE)); form.setMinimizable(Utils.getBooleanAttribute(element, "mne", "minimizable", Boolean.TRUE)); form.setResizable(Utils.getBooleanAttribute(element, "rs", "resizable", Boolean.TRUE)); form.setUndecorated(Utils.getBooleanAttribute(element, "udr", "undecorated", Boolean.FALSE)); form.setOpacity(Utils.getFloatAttribute(element, "opc", "opacity", 1.0f)); form.setAlwaysOnTop(Utils.getBooleanAttribute(element, "aot", "alwaysOnTop", Boolean.FALSE)); form.setLocationByPlatform(Utils.getBooleanAttribute(element, "lbp", "locationByPlatform", Boolean.TRUE)); // form.setDesignedViewSize(viewWidget.getPreferredSize()); } return form; } }