/******************************************************************************* * 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.dhtml.menubuttonkit; import java.io.IOException; import org.eclipse.rwt.internal.lifecycle.HtmlResponseWriter; import org.eclipse.rwt.internal.util.HTML; import com.w4t.RenderUtil; import com.w4t.dhtml.Menu; import com.w4t.dhtml.MenuButton; import com.w4t.dhtml.menustyle.*; import com.w4t.util.image.*; /** * <p>The renderer for org.eclipse.rap.dhtml.MenuButton on Mozilla 1.6 * and higher without javascript support.</p> */ public class MenuButtonRenderer_Mozilla1_6up_Noscript extends MenuButtonRenderer { void createActiveButton( final MenuButton menuButton ) throws IOException { try { ImageDescriptor imgDesc = null; if( getMenu( menuButton ).isExpanded() ) { imgDesc = createImageDescriptor( menuButton, getMBAStyle( menuButton ) ); } else { imgDesc = createImageDescriptor( menuButton, getMBEStyle( menuButton ) ); } ImageCache cache = ImageCache.getInstance(); String imageName = cache.getImageName( imgDesc ); if( cache.isStandardSubmitterImage( imageName ) ) { createLabeledDefaultSubmitter( menuButton ); } else { createActionSubmitter( menuButton, imageName ); } } catch( Exception e ) { System.out.println( "\nException creating submitter image:\n" + e ); e.printStackTrace(); createLabeledDefaultSubmitter( menuButton ); } } void createInactiveButton( final MenuButton menuButton ) throws IOException { HtmlResponseWriter out = getResponseWriter(); out.startElement( HTML.A, null ); out.writeAttribute( HTML.CLASS, "disabledMenuButton", null ); out.writeText( getLabel( menuButton ), null ); out.endElement( HTML.A ); } // helping methods ////////////////// private ImageDescriptor createImageDescriptor( final MenuButton menuButton, final MenuLabeledProperties style ) { return ImageDescriptorFactory.create( getLabel( menuButton ), style.getColor(), style.getBgColor(), style.getFontFamily(), style.getFontSize(), style.getFontWeight(), style.getFontStyle() ); } private MenuButtonEnabledStyle getMBEStyle( final MenuButton menuButton ) { return getMenuBar( menuButton ).getButtonEnabledStyle(); } private MenuButtonActiveStyle getMBAStyle( final MenuButton menuButton ) { return getMenuBar( menuButton ).getButtonActiveStyle(); } private void createActionSubmitter( final MenuButton menuButton, final String imageName ) throws IOException { Menu menu = getMenu( menuButton ); RenderUtil.writeActionSubmitter( imageName, menu.getUniqueID(), getLabel( menuButton ), getStyleClassName(menuButton) ); } private void createLabeledDefaultSubmitter( final MenuButton menuButton ) throws IOException { HtmlResponseWriter out = getResponseWriter(); out.startElement( HTML.A, null ); out.writeAttribute( HTML.CLASS, getStyleClassName( menuButton ), null ); out.writeText( getLabel( menuButton ), null ); out.writeNBSP(); RenderUtil.writeActionSubmitter( getMenu( menuButton ).getUniqueID() ); out.endElement( HTML.A ); } private static String getStyleClassName( final MenuButton menuButton ) { String styleClass = "menuButton"; if( getMenu( menuButton ).isExpanded() ) { styleClass = "menuButtonActive"; } return styleClass; } }