package com.eclipsesource.tabris.internal; import static com.eclipsesource.tabris.internal.Constants.ID_SWT; import static com.eclipsesource.tabris.internal.Constants.THEME_ID_SWT; import javax.servlet.http.HttpServletRequest; import org.eclipse.rap.rwt.RWT; import org.eclipse.rap.rwt.client.Client; import org.eclipse.rap.rwt.internal.theme.ThemeUtil; import com.eclipsesource.tabris.VersionCheck; @SuppressWarnings("restriction") public class TabrisSWTClientProvider extends TabrisClientProvider { public TabrisSWTClientProvider() { super( new NoVersionCheck() ); } public String getPlatform() { String userAgent = RWT.getRequest().getHeader( Constants.USER_AGENT ); if( userAgent != null && userAgent.contains( ID_SWT ) ) { return ID_SWT; } return null; } @Override public boolean accept( HttpServletRequest request ) { String platform = getPlatform(); if( platform != null && platform.equals( ID_SWT ) ) { ThemeUtil.setCurrentThemeId( RWT.getUISession(), THEME_ID_SWT ); return true; } return super.accept( request ); } @Override public Client getClient() { return new TabrisSWTClient(); } static class NoVersionCheck implements VersionCheck { @Override public boolean accept( String clientVersion, String serverVersion ) { return true; } @Override public String getErrorMessage( String clientVersion, String serverVersion ) { return null; } } }