/******************************************************************************* * Copyright (c) 2002, 2010 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 * EclipseSource - ongoing development ******************************************************************************/ package org.eclipse.swt.internal.widgets.menuitemkit; import java.io.IOException; import org.eclipse.rwt.lifecycle.JSWriter; import org.eclipse.rwt.lifecycle.WidgetLCAUtil; import org.eclipse.swt.internal.widgets.ItemLCAUtil; import org.eclipse.swt.internal.widgets.Props; import org.eclipse.swt.widgets.MenuItem; final class BarMenuItemLCA extends MenuItemDelegateLCA { private static final String ITEM_TYPE_BAR = "bar"; void preserveValues( final MenuItem menuItem ) { ItemLCAUtil.preserve( menuItem ); MenuItemLCAUtil.preserveEnabled( menuItem ); WidgetLCAUtil.preserveCustomVariant( menuItem ); WidgetLCAUtil.preserveHelpListener( menuItem ); } void readData( final MenuItem menuItem ) { WidgetLCAUtil.processHelp( menuItem ); } void renderInitialization( final MenuItem menuItem ) throws IOException { MenuItemLCAUtil.newItem( menuItem, "org.eclipse.rwt.widgets.MenuItem", ITEM_TYPE_BAR ); } // TODO [tb] the client-side menuItem supports images, but the menubar // ignores them in its layout, so it is currently not rendered void renderChanges( final MenuItem menuItem ) throws IOException { writeText( menuItem ); MenuItemLCAUtil.writeEnabled( menuItem ); WidgetLCAUtil.writeCustomVariant( menuItem ); WidgetLCAUtil.writeHelpListener( menuItem ); } private static void writeText( final MenuItem menuItem ) throws IOException { String text = menuItem.getText(); if( WidgetLCAUtil.hasChanged( menuItem, Props.TEXT, text ) ) { JSWriter writer = JSWriter.getWriterFor( menuItem ); text = WidgetLCAUtil.escapeText( text, true ); writer.set( "text", text ); } } }