/******************************************************************************* * Copyright (c) 2002-2006 Innoopract Informationssysteme GmbH. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Innoopract Informationssysteme GmbH - initial API and implementation ******************************************************************************/ package com.w4t; import java.lang.reflect.Field; import org.eclipse.rwt.resources.IResourceManager; import com.w4t.internal.adaptable.IFormAdapter; /** <p>A helping class to get access to hidden methods and properties from * outside of the org.eclipse.rap package.</p> * <p>It provides some static methods to get access to hidden properties * and methods of WebComponents from outside the package, e.g. for the * WebComponentRegistry.</p> * <p> * This class is for internal use only. * </p> */ public final class WebComponentControl { // TODO: [fappel] move this to the respective component static { IResourceManager manager = W4TContext.getResourceManager(); manager.register( "resources/images/icons/anchor.gif" ); manager.register( "resources/images/icons/button.gif" ); manager.register( "resources/images/icons/cdatabaselist.gif" ); manager.register( "resources/images/icons/checkbox.gif" ); manager.register( "resources/images/icons/ctoolbar.gif" ); manager.register( "resources/images/icons/disabledanchor.gif" ); manager.register( "resources/images/icons/disabledbutton.gif" ); manager.register( "resources/images/icons/disabledcdatabaselist.gif" ); manager.register( "resources/images/icons/disabledcheckbox.gif" ); manager.register( "resources/images/icons/disabledctoolbar.gif" ); manager.register( "resources/images/icons/disableddropdown.gif" ); manager.register( "resources/images/icons/disabledfileupload.gif" ); manager.register( "resources/images/icons/disabledimage.gif" ); manager.register( "resources/images/icons/disableditemlist.gif" ); manager.register( "resources/images/icons/disabledlabel.gif" ); manager.register( "resources/images/icons/disabledmenubar.gif" ); manager.register( "resources/images/icons/disabledpanel.gif" ); manager.register( "resources/images/icons/disabledradiobutton.gif" ); manager.register( "resources/images/icons/disabledscrollpane.gif" ); manager.register( "resources/images/icons/disabledselect.gif" ); manager.register( "resources/images/icons/disabledtabbedpane.gif" ); manager.register( "resources/images/icons/disabledtable.gif" ); manager.register( "resources/images/icons/disabledtext.gif" ); manager.register( "resources/images/icons/disabledtextarea.gif" ); manager.register( "resources/images/icons/disabledtreeview.gif" ); manager.register( "resources/images/icons/disabledwebdataobject.gif" ); manager.register( "resources/images/icons/disabledwebdatatable.gif" ); manager.register( "resources/images/icons/disabledwebdata_db.gif" ); manager.register( "resources/images/icons/disabledwebdata_rs.gif" ); manager.register( "resources/images/icons/fileupload.gif" ); manager.register( "resources/images/icons/image.gif" ); manager.register( "resources/images/icons/itemlist.gif" ); manager.register( "resources/images/icons/label.gif" ); manager.register( "resources/images/icons/menubar.gif" ); manager.register( "resources/images/icons/panel.gif" ); manager.register( "resources/images/icons/radiobutton.gif" ); manager.register( "resources/images/icons/scrollpane.gif" ); manager.register( "resources/images/icons/select.gif" ); manager.register( "resources/images/icons/tabbedpane.gif" ); manager.register( "resources/images/icons/table.gif" ); manager.register( "resources/images/icons/text.gif" ); manager.register( "resources/images/icons/textarea.gif" ); manager.register( "resources/images/icons/treeview.gif" ); manager.register( "resources/images/icons/webdataobject.gif" ); manager.register( "resources/images/icons/webdatatable.gif" ); manager.register( "resources/images/icons/webdata_db.gif" ); manager.register( "resources/images/icons/webdata_rs.gif" ); manager.register( "resources/images/icons/disabledradiobuttongroup.gif" ); manager.register( "resources/images/icons/radiobuttongroup.gif" ); manager.register( "resources/images/icons/disabledcmenu.gif" ); manager.register( "resources/images/icons/cmenu.gif" ); } public static void setWebComponents( final WebForm form ) { // TODO: [fappel] improve this kind of exception handling ... try { form.setWebComponents(); } catch( final Exception ex ) { String msg = "Unable to create the component tree."; throw new RuntimeException( msg, ex ); } } public static String getUniversalAttributes( final WebForm form ) { return form.getUniversalAttributes().getUniversalAttributes(); } /** reads out the protected flag in wf to find out, whether the window * displaying wf is to be refreshed, and resets the flag */ public static boolean refreshWindow( final WebForm form ) { boolean isRefreshing = form.isRefreshing(); getFormAdapter( form ).refreshWindow( false ); return isRefreshing; } /** reads out the protected flag in wf to find out, whether the window * displaying wf is to be refreshed, and resets the flag */ public static boolean refreshWindow( final WebForm wf, final boolean refresh ) { boolean isRefreshing = wf.isRefreshing(); getFormAdapter( wf ).refreshWindow( refresh ); return isRefreshing; } /** reads out the protected flag in wf to find out, whether wf is to * be displaed in a new browser window, and resets the flag */ public static boolean openInNewWindow( final WebForm wf ) { boolean isOpeningInNewWindow = wf.isOpeningNewWindow(); getFormAdapter( wf ).showInNewWindow( false ); return isOpeningInNewWindow; } private static IFormAdapter getFormAdapter( final WebForm form ) { return ( IFormAdapter )form.getAdapter( IFormAdapter.class ); } /** <p>sets whether the WebForm is currently shown in a browser.</p> */ public static void setActive( final WebForm form, final boolean active ) { getFormAdapter( form ).setActive( active ); } /** <p>returns whether the WebForm is currently shown in a * browser.</p> */ public static boolean isActive( final WebForm form ) { return getFormAdapter( form ).isActive(); } public static Field[] getDeclaredFields( final WebComponent component ) { return component.getDeclaredFields(); } public static void setParent( final WebComponent target, final WebContainer parent ) { target.parent = parent; } }