favoriteMenu = (XulMenubar) document.getElementById( "favoritesmenu" ); //$NON-NLS-1$
if ( PerspectiveManager.getInstance().isLoaded() ) {
PerspectiveManager.getInstance().enablePerspective( PerspectiveManager.OPENED_PERSPECTIVE, false );
} else {
EventBusUtil.EVENT_BUS.addHandler( PerspectivesLoadedEvent.TYPE, new PerspectivesLoadedEventHandler() {
public void onPerspectivesLoaded( PerspectivesLoadedEvent event ) {
PerspectiveManager.getInstance().enablePerspective( PerspectiveManager.OPENED_PERSPECTIVE, false );
}
} );
}
// install language sub-menus
Map<String, String> supportedLanguages = Messages.getResourceBundle().getSupportedLanguages();
if ( supportedLanguages != null && supportedLanguages.keySet() != null && !supportedLanguages.isEmpty() ) {
MenuBar langMenu = (MenuBar) languageMenu.getManagedObject();
langMenu.insertSeparator( 0 );
for ( String lang : supportedLanguages.keySet() ) {
MenuItem langMenuItem = new MenuItem( supportedLanguages.get( lang ), new SwitchLocaleCommand( lang ) );
langMenuItem.getElement().setId( supportedLanguages.get( lang ) + "_menu_item" ); //$NON-NLS-1$
langMenu.insertItem( langMenuItem, 0 );
}
}
buildFavoritesAndRecent( false );
UserSettingsManager.getInstance().getUserSettings( new AsyncCallback<JsArray<JsSetting>>() {
public void onSuccess( JsArray<JsSetting> settings ) {
processSettings( settings );
}
public void onFailure( Throwable caught ) {
}
}, false );
EventBusUtil.EVENT_BUS.addHandler( UserSettingsLoadedEvent.TYPE, new UserSettingsLoadedEventHandler() {
public void onUserSettingsLoaded( UserSettingsLoadedEvent event ) {
processSettings( event.getSettings() );
}
} );
// install themes
RequestBuilder getActiveThemeRequestBuilder =
new RequestBuilder( RequestBuilder.GET, GWT.getHostPageBaseURL() + "api/theme/active" ); //$NON-NLS-1$
try {
getActiveThemeRequestBuilder.setHeader( "If-Modified-Since", "01 Jan 1970 00:00:00 GMT" );
getActiveThemeRequestBuilder.sendRequest( null, new RequestCallback() {
public void onError( Request request, Throwable exception ) {
// showError(exception);
}
public void onResponseReceived( Request request, Response response ) {
final String activeTheme = response.getText();
RequestBuilder getThemesRequestBuilder =
new RequestBuilder( RequestBuilder.GET, GWT.getHostPageBaseURL() + "api/theme/list" ); //$NON-NLS-1$
getThemesRequestBuilder.setHeader( "If-Modified-Since", "01 Jan 1970 00:00:00 GMT" );
getThemesRequestBuilder.setHeader( "accept", "application/json" ); //$NON-NLS-1$ //$NON-NLS-2$
try {
getThemesRequestBuilder.sendRequest( null, new RequestCallback() {
public void onError( Request arg0, Throwable arg1 ) {
}
public void onResponseReceived( Request request, Response response ) {
try {
final String url = GWT.getHostPageBaseURL() + "api/repo/files/canAdminister"; //$NON-NLS-1$
RequestBuilder requestBuilder = new RequestBuilder( RequestBuilder.GET, url );
requestBuilder.setHeader( "If-Modified-Since", "01 Jan 1970 00:00:00 GMT" );
requestBuilder.setHeader( "accept", "text/plain" ); //$NON-NLS-1$ //$NON-NLS-2$
requestBuilder.sendRequest( null, new RequestCallback() {
public void onError( Request request, Throwable caught ) {
}
public void onResponseReceived( Request request, Response response ) {
toolsMenu.setVisible( "true".equalsIgnoreCase( response.getText() ) ); //$NON-NLS-1$
showHiddenFilesMenuItem.setVisible( "true".equalsIgnoreCase( response.getText() ) ); //$NON-NLS-1$
}
} );
} catch ( RequestException e ) {
Window.alert( e.getMessage() );
}
JsArray<JsTheme> themes = JsTheme.getThemes( JsonUtils.escapeJsonForEval( response.getText() ) );
for ( int i = 0; i < themes.length(); i++ ) {
JsTheme theme = themes.get( i );
PentahoMenuItem themeMenuItem =
new PentahoMenuItem( theme.getName(), new SwitchThemeCommand( theme.getId() ) );
themeMenuItem.getElement().setId( theme.getId() + "_menu_item" ); //$NON-NLS-1$
themeMenuItem.setChecked( theme.getId().equals( activeTheme ) );
( (MenuBar) themesMenu.getManagedObject() ).addItem( themeMenuItem );
}
bf.createBinding( model, "saveEnabled", saveMenuItem, "!disabled" ); //$NON-NLS-1$ //$NON-NLS-2$
bf.createBinding( model, "saveAsEnabled", saveAsMenuItem, "!disabled" ); //$NON-NLS-1$ //$NON-NLS-2$
if ( PerspectiveManager.getInstance().isLoaded() ) {
executeAdminContent();
} else {
EventBusUtil.EVENT_BUS.addHandler( PerspectivesLoadedEvent.TYPE,
new PerspectivesLoadedEventHandler() {
public void onPerspectivesLoaded( PerspectivesLoadedEvent event ) {
executeAdminContent();
}
} );
}