Customising the Pentaho User Console – Part 3.

Posted under BI Server, Open Source, Pentaho, Tutorials, User Console

This post is part 3 of the series “Customising the Pentaho User Console (PUC)” Version 3.5.x. Here is a list of what I have covered in other parts:

In this post I will show you how to customise the main-toolbar, menu-bar, logo-panel and other features for the PUC.

The Pentaho User Console

Below is a screenshot with overlays that highlight the different areas of the PUC:

A screenshot with overlays of the areas which make up the PUC

Table of Contents

This tutorial has been tested with Pentaho BI Server 3.5.0 and 3.5.2.

I have split the tutorial into 4 different sections which involve making modifications to .PROPERTIES, .XUL, .PNG files and checking out and building the source code. Here is a ‘table of contents’ for this tutorial:

MantleSettings.properties

The MantleSettings.properties file is located inside the mantle-3.5.0.stable.jar file under the /tomcat/webapps/pentaho/WEB-INF/lib/ directory.

To make modifications to the MantleSettings.properties you will need to have an archive tool installed i.e. WinZip, WinRAR etc. in this example I will be using WinZip. Right click on the mantle-3.5.0.stable.jar file and click the Open With > WinZip option:

Open the mantle.3.5.0.stable.jar file with WinZip

Once you have opened the mantle-3.5.0.stable.jar file with your archive tool find the MantleSettings.properties file which is located under the org\pentaho\mantle\server\ directory and open it with a text editor – in this example I will be using PSPad. Right click on the MantleSettings.properties and click the Open With > PSPad editor option:

Open the MantleSettings.properties file with PSPad

You should now be able to see the contents of the MantleSettings.properties file:

show-explorer-view-on-startup=true
show-advanced-features=false
# startup urls (each displays in its own tab)
num-startup-urls=0
startup-url-1=/pentaho/welcome/welcome.html
startup-name-1=Welcome
startup-url-2=http://www.pentaho.com
startup-name-2=Pentaho Business Intelligence
startup-url-3=/pentaho/ViewAction?solution=samples&path=/reporting&action=JFree_Quad.xaction
startup-url-4=/pentaho/SampleDashboard
# plugin perspectives
num-plugin-perspectives=0
plugin-perspective-url-1=/pentaho/adhoc/waqr.html
plugin-perspective-name-1=Ad hoc Reporting
plugin-perspective-url-2=/pentaho/interactive-reporting/index.html
plugin-perspective-name-2=Interactive Reporting
# ui customization settings (if menu/toolbar are disabled, the logo panel is disabled automatically)
show-menu-bar=true
show-main-toolbar=true
show-logo-panel=true

After you save any changes you make to the MantleSettings.properties your archive tool should prompt you to update the mantle-3.5.0.stable.jar archive. For example WinZip displays the following prompt box after I save any changes to the MantleSettings.properties file:

A prompt from WinZip that warns a user to update the archive

Displaying Tabs when PUC Launches

The startup-urls option provides functionality to tell the PUC to open tabs with predefined content when it launches i.e. welcome, intranet pages etc. The following section within the MantleSettings.properties file is where you define these options:

# startup urls (each displays in its own tab)
num-startup-urls=0
startup-url-1=/pentaho/welcome/welcome.html
startup-name-1=Welcome
startup-url-2=http://www.pentaho.com
startup-name-2=Pentaho Business Intelligence
startup-url-3=/pentaho/ViewAction?solution=samples&path=/reporting&action=JFree_Quad.xaction
startup-url-4=/pentaho/SampleDashboard
  • num-startup-urls : The amount of URLs you would like to load when PUC launches
  • startup-url-x : The location of the content which will appear in the tab (x is a user defined unique id) i.e. a webpage or xaction
  • startup-name-x : The title of the tab which will contain the content you specified in the startup-url-x option (x is a user defined unique id) i.e. Welcome or Sales Dashboard

In this example I would like to load two tabs when a user logs into the PUC:

  1. A tab titled Welcome which will display the /pentaho/welcome/welcome.html page
  2. A tab titled Pentaho Business Intelligence which will display the /pentaho/ViewAction?solution=samples&path=/reporting&action=JFree_Quad.xaction xaction

After making changes to the MantleSettings.properties file the startup-urls section now looks like this:

# startup urls (each displays in its own tab)
num-startup-urls=2
startup-url-1=/pentaho/welcome/welcome.html
startup-name-1=Welcome
startup-url-2=http://www.pentaho.com
startup-name-2=Pentaho Business Intelligence
startup-url-3=/pentaho/ViewAction?solution=samples&path=/reporting&action=JFree_Quad.xaction
startup-url-4=/pentaho/SampleDashboard

Restart your Apache-Tomcat server and clear your browsers cache. When you launch the PUC two tabs are loaded automatically (with the titles and content defined above):

When the num-startup-urls option is set to 2

Show/Hide the menu-bar, main-toolbar and logo-panel

The show-menu-bar, show-main-toolbar and show-logo-panel options can show/hide the menu-bar, main-toolbar or logo-panel. If you decide to hide the menu-bar or main-toolbar the logo-panel is automatically hidden.

The following section within the MantleSettings.properties file is where you define these options:

# ui customization settings (if menu/toolbar are disabled, the logo panel is disabled automatically)
show-menu-bar=true
show-main-toolbar=true
show-logo-panel=true

Below are the different options and screenshots in action (after making any changes make sure you restart your Apache-Tomcat server and clear your browsers cache):

Show All

Show menu-bar, main-toolbar and logo-panel

show-menu-bar=true
show-main-toolbar=true
show-logo-panel=true
show-menu-bar=false

When the show-menu-bar opotion is set to false

show-menu-bar=false
show-main-toolbar=true
show-logo-panel=true
show-main-toolbar=false

Set the show-main-toolbar option to false

show-menu-bar=true
show-main-toolbar=false
show-logo-panel=true
show-logo-panel=false

The logo-panel is not shown when the show-logo-panel=false

show-menu-bar=true
show-main-toolbar=true
show-logo-panel=false

Other Options

You may have noticed other options available in the MantleSettings.properties file:

show-explorer-view-on-startup=true
show-advanced-features=false
...
# plugin perspectives
num-plugin-perspectives=0
plugin-perspective-url-1=/pentaho/adhoc/waqr.html
plugin-perspective-name-1=Ad hoc Reporting
plugin-perspective-url-2=/pentaho/interactive-reporting/index.html
plugin-perspective-name-2=Interactive Reporting
...

Below is my attempt of trying to explain these options (if you have more information on these options please let me know):

show-explorer-view-on-startup=false

When this option is set to false the default solution browser is disabled and is replaced in the main content area with the old version (1.7) solution browser.

show-advanced-features=true

When this option is set to true advanced options are enabled on the menu-bar. These advanced options include Favourite solution folders and User Preferences.

plugin perspectives

I believe this has to do with Pentaho’s BI Server new plugin architecture and works similar to the startup-urls option, if I set the num-plugin-perspectives option from 0 to 2 the Ad hoc Reporting and Interactive Reporting items the View menu item.

Change the Default logo-panel Logo

To change the default logo seen on the logo-panel you will need to modify or replace the logo.png file which is under the tomcat/webapps/pentaho/mantle directory.

The new or modified logo.png image must be:

  • 152 pixels wide
  • 70 pixels high
  • A transparent .PNG image (optional)

For example I would like to replace the logo.png image with the following image:

New logo for logo-panel

After replacing the logo.png with the above image the logo-panel now looks like this:

The new logo on the logo panel

There is no need to restart your Apache-Tomcat server to reflect this change however if no change is apparent clear your browsers cache.

main_toolbar.xul

The main-toolbar is built using XUL mark up (XUL was created by Mozilla and you can read up more on it here). At the moment only the main-toolbar uses XUL mark-up (to make modifications to the menu-bar you will need to modify the source code). The main_toolbar.xul file is located under the tomcat/webapps/pentaho/mantle/xul/ directory.




You can open the main_toolbar.xul file with a text editor, the contents of this file look like this:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="275" title="Placeholder"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"  xmlns:pen="http://www.pentaho.org/2008/xul" onload="mainToolbarHandler.init()">
  <toolbar id="mainToolbar">
    <toolbarspacer width="10"/>
    <toolbarbutton id="openButton" image="mantle/images/open_32.png" onclick="mainToolbarHandler.openClicked()" tooltiptext="${openEllipsis}"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="newAdhocButton" image="mantle/images/new_report_32.png" onclick="mainToolbarHandler.newAdhocClicked()" tooltiptext="${newAdhocReport}"/>
    <toolbarbutton id="newAnalysisButton" image="mantle/images/new_analysis_32.png" disabledimage="mantle/images/new_analysis_32_disabled.png" onclick="mainToolbarHandler.newAnalysisClicked()" tooltiptext="${newAnalysisView}"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="editContentButton" image="mantle/images/editContent_32.png" disabledimage="mantle/images/editContent_32_disabled.png"  onclick="mainToolbarHandler.editContentClicked()" tooltiptext="${editContent}" disabled="true" type="toggle" pen:visible="false"/>
    <toolbarspacer id="editButtonSpacer" width="20" pen:visible="false"/>
    <toolbarbutton id="saveButton" image="mantle/images/save_32.png" disabledimage="mantle/images/save_32_disabled.png" onclick="mainToolbarHandler.saveClicked()" tooltiptext="${save}" disabled="true"/>
    <toolbarbutton id="saveAsButton" image="mantle/images/saveAs_32.png" disabledimage="mantle/images/saveAs_32_disabled.png"  onclick="mainToolbarHandler.saveAsClicked()" tooltiptext="${saveAs}" disabled="true"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="printButton" image="mantle/images/print_32.png" disabledimage="mantle/images/print_32_disabled.png" onclick="mainToolbarHandler.printClicked()" tooltiptext="${print}" disabled="true"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="workspaceButton" image="mantle/images/workspace_32.png" type="toggle" onclick="mainToolbarHandler.workspaceClicked()" tooltiptext="${workspace}"/>
    <toolbarbutton id="showBrowserButton" image="mantle/images/browser_show_32.png" downimage="mantle/images/browser_hide_32.png" type="toggle" onclick="mainToolbarHandler.showBrowserClicked()" tooltiptext="${toggleSolutionBrowser}"/>
  </toolbar>
</window>

Here are descriptions of the key elements and attributes which make up this file:

  • toolbarspacer : This element creates a blank space on the main toolbar
    • width : Is an attribute of the toolbarspacer element and defines how wide the blank space on the main toolbar is i.e. 20 is equivalent to 20 pixels wide
  • toolbarbutton : This element creates a button on the main toolbar
    • id : A unique identifier of the button – this is set for any JavaScript interaction
    • image : The image of the button, these images are located under the tomcat/webapps/pentaho/mantle/images directory
    • disabledimage : The image which is displayed when the button is disabled (this happens when you set the disabled element to true), these images are located under the tomcat/webapps/pentaho/mantle/images directory
    • onclick : The function to call when the button is clicked
    • tooltiptext : The tooltip text to display when a user hovers over the button, most of these are setup in the messages_xx.properties file (this was covered in this post)
    • downimage : The image which is displayed when the button is toggled
    • type : The button type – for example if the button is a toggle button
    • disabled : When this option is set to true the button will be disabled and the disabledimage image will be displayed

The image below describes how the above mark up contributes to the main-toolbar:

The structure of the main toolbar and code

Show/Hide Buttons on the main-toolbar

In this example I would like to remove a spacer, New Adhoc Report and New Analysis buttons from the main-toolbar, you can do this by deleting or commenting out lines from the main_toolbar.xul file (I will be removing the lines). The lines of code which I will to need remove are:

<toolbarspacer width="20"/>
<toolbarbutton id="newAdhocButton" image="mantle/images/new_report_32.png" onclick="mainToolbarHandler.newAdhocClicked()" tooltiptext="${newAdhocReport}"/>
<toolbarbutton id="newAnalysisButton" image="mantle/images/new_analysis_32.png" disabledimage="mantle/images/new_analysis_32_disabled.png" onclick="mainToo

After making the changes the main_toolbar.xul file now looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="275" title="Placeholder"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"  xmlns:pen="http://www.pentaho.org/2008/xul" onload="mainToolbarHandler.init()">
  <toolbar id="mainToolbar">
    <toolbarspacer width="10"/>
    <toolbarbutton id="openButton" image="mantle/images/open_32.png" onclick="mainToolbarHandler.openClicked()" tooltiptext="${openEllipsis}"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="editContentButton" image="mantle/images/editContent_32.png" disabledimage="mantle/images/editContent_32_disabled.png"  onclick="mainToolbarHandler.editContentClicked()" tooltiptext="${editContent}" disabled="true" type="toggle" pen:visible="false"/>
    <toolbarspacer id="editButtonSpacer" width="20" pen:visible="false"/>
    <toolbarbutton id="saveButton" image="mantle/images/save_32.png" disabledimage="mantle/images/save_32_disabled.png" onclick="mainToolbarHandler.saveClicked()" tooltiptext="${save}" disabled="true"/>
    <toolbarbutton id="saveAsButton" image="mantle/images/saveAs_32.png" disabledimage="mantle/images/saveAs_32_disabled.png"  onclick="mainToolbarHandler.saveAsClicked()" tooltiptext="${saveAs}" disabled="true"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="printButton" image="mantle/images/print_32.png" disabledimage="mantle/images/print_32_disabled.png" onclick="mainToolbarHandler.printClicked()" tooltiptext="${print}" disabled="true"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="workspaceButton" image="mantle/images/workspace_32.png" type="toggle" onclick="mainToolbarHandler.workspaceClicked()" tooltiptext="${workspace}"/>
    <toolbarbutton id="showBrowserButton" image="mantle/images/browser_show_32.png" downimage="mantle/images/browser_hide_32.png" type="toggle" onclick="mainToolbarHandler.showBrowserClicked()" tooltiptext="${toggleSolutionBrowser}"/>
  </toolbar>
</window>

Save the main_toolbar.xul file, restart your Apache-Tomcat server and clear your browsers cache. The main-toolbar now looks like this:

Buttons removed from the main toolbar

Modifying the Source Code

The following section assumes that you have experience in Java, Subversion and the Eclipse IDE.

Requirements

Some of the excerpts below have been taken from this wiki entry.

Before you get started you must have the following tools installed:

Eclipse IDE

The Eclipse platform is the IDE of choice at Pentaho

To download the latest version of the Eclipse IDE for your operating system click here – I use the Eclipse IDE for Java Developers version.

If you are using Windows there is no installation package or wizard so extract the file to a working location i.e. C:\eclipse. If you are using a Linux workstation i.e. Ubuntu or Fedora you should be able to use the software package managers to install the Eclipse IDE.

The first time you start up Eclipse you will be prompted to set your default Workspace – this is where you will be checking out all the required folders to build the Pentaho BI Server.

Ant

Ant is a Java-based build tool that Pentaho uses to build the server platform, among other projects

By default Apache Ant is pre-packaged with Eclipse IDE but if you would like to install/setup Apache Ant manually follow the guide posted on this wiki entry.

IvyDE

IvyDE is an IDE that lets you manage your dependencies declared in an ivy.xml file in your Java Eclipse projects

To install IvyDE click on this link. Once the file has downloaded extract its contents to your Eclipse home directory i.e. C:\eclipse, it will extract files into the features/ and plugins/ directories.

For more detailed instructions or if you already have a version of IvyDE installed click here.

Subclipse

Subclipse is an Eclipse plugin that enables Subversion access from within the Eclipse environment

To install Subclipse follow the instructions on this wiki entry.

You can also install Subclipse manually by downloading the latest version here (the latest version at the time of writing this was 1.6.8) and extracting its contents to your Eclipse home directory i.e. C:\eclipse, it will extract files into the features/ and plugins/ directories.

The next step is to configure Eclipse to use Subclipse for all SVN related tasks. Once you have installed Subclipse start Eclipse and click on the Windows > Preferences option to display the Preferences window. Expand the Team item from left frame and click the SVN option. In the right frame make sure the SVN Interface is set to SVNKit (Pure Java) SVNKit … and click the OK button.

SVN interface option set to SVNKit Pure Java

Checking out the Source Code

Create a New Project

The first step before you start to check out any code is to create a new project. Start up Eclipse and click on File > New > Project option from the menu bar:

Create a new project

This will launch a New project wizard. Expand the General folder and select the Project option and click the Next > button:

The new project wizard will launch

The next window will ask you to setup your Project resource. Enter pentaho for the Project name and leave the Use default location check box checked and click the Finish button:

New project name titled pentaho

You should now be able to see the project pentaho under the Package Explorer tab:

pentaho project visible under the package explorer tab

Checkout All Necessary Folders

The next step is to checkout all the folders which are required to build the Pentaho BI Server from source. You will need to checkout these 4 folders:

  • svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.0-GA
  • svn://source.pentaho.org/svnroot/legacy/pentaho-xul/trunk
  • svn://source.pentaho.org/svnroot/pentaho-commons/pentaho-gwt-modules/trunk
  • svn://source.pentaho.org/svnroot/pentaho-open-admin-console/tags/3.5.0-GA

You can browse the repository with your browser by visiting this URL: http://source.pentaho.org/svnroot/.

I have tested this with version 3.5.2 so if you are running 3.5.2 use the following 5 folders:

  • svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.2.stable
  • svn://source.pentaho.org/svnroot/legacy/pentaho-xul/trunk
  • svn://source.pentaho.org/svnroot/pentaho-commons/pentaho-gwt-modules/trunk
  • svn://source.pentaho.org/svnroot/pentaho-open-admin-console/tags/3.5.2.stable

You will need to repeat the steps seen below for each folder, I have used the first folder as an example (3.5.0-GA).

The first step is to import the svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.0-GA (bi-platform-v2/tags/3.5.0-GA) into the pentaho project which we created earlier. Right click on the pentaho project under the Package Explorer tab and click on the Import… option:

Right click on pentaho and click the Import... option

An Import window will appear asking you for the source of the import, expand the SVN folder and click the Checkout Projects from SVN option and click the Next > button:

Import a SVN project

The next window will ask you if you would like to Create a new repository location or Use existing repository location, click the Create a new repository location option and click the Next > button:

Create a new repository location

The next window will ask you the location of the repository, enter in the URL for the folder if you are doing this for the first time enter svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.0-GA as the URL and click the Next > button:

The URL of the SVN location to be checked out

The next window will ask you which folder you would like to check out, as you need all folders under each listed URL – select the root folder which in this example can be seen listed as svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.0-GA and click the Next > button:

The next window will ask you how you want to check out the folder. Click on the Check out as a project in the workspace option and leave the Project name to the populated name, leave the rest of the options to the defaults and click the Next > button:

Check out the SVN folder with the default name

The last window will ask you where you would like to check out the folder to, uncheck the Use the default workspace location option and make sure the Location points to the pentaho project’s folder under your workspace i.e. C:\Users\prashant\workspace\pentaho\3.5.2.stable\mantle\dist then click the Finish button:

The location under your workspace to place the checked out project

After the checking out is complete (it may take a while depending on your internet connection) you will see the project listed under the pentaho/project on the Package explorer tab:

The 3.5.0-GA folder checked out

Repeat the above steps for the next 3 URLs, after you have completed this you should now see the following projects under your pentaho project on the Package explorer tab:

All folders checked out under the pentaho project

While you are checking out folders IvyDE will automatically retrieve any dependencies which the source code needs – this may take a while as it downloads packages etc. so just keep an eye on the bottom right hand corner to make sure that all the dependencies have downloaded for all the folders you have checked out:

Resolve Dependencies

Now you are ready to start modifying the source code.

Examples

As you can almost do anything when modifying the source code I decided to keep the examples to minor changes to the PUC user interface – hopefully these examples can give you a head start with any modifications you need to do.

Show/Hide menu-bar Items

To change the items which are appear on the menu-bar you will need to edit the MantleApplication.java file within Eclipse, this file is located under the pentaho/3.5.0-GA/mantle/org/pentaho/mantle/client/ directory (pentaho is the name of the project).

To understand how menu items are added to the menu bar below is a high level breakdown of the code.

The following piece of code:

  1. Creates the Save menu item
  2. Assigns the save message defined in the messages_xx.properties file
  3. Assigns the SaveCommand function to the Save menu item
  4. Assigns save as an element id
saveMenuItem = new PentahoMenuItem(Messages.getString("save"), new SaveCommand(solutionBrowserPerspective, false)); //$NON-NLS-1$
saveMenuItem.getElement().setId("save");

The following piece of code:

  1. Adds the Save menu item to the File menu item
  2. Adds a separator (horizontal bar) to the File menu
fileMenu.addItem(saveMenuItem);
fileMenu.addSeparator();

In this example I want to hide the Help menu item, to do this you will need to comment out the following line of code:

menuBar.addItem(helpMenuBar);

After commenting the above line looks like this:

//menuBar.addItem(helpMenuBar);

If you were going to make this change permanent I would suggest you remove all instances of the Help menu item and sub items.

Save the file and rebuild the pentaho project and copy over the new directories and files, after this is complete the new menu-bar now looks like this:

No Help Menu Item

Another example is if I wanted to remove the following menu items (which are part of the File menu item):

  • File
    • New (remove including sub items)
    • — (remove)
    • Save (remove)
    • Save As… (remove)
    • — (remove)

First locate the following lines of code within the MantleApplication.java file:

fileMenu.addItem(newMenuBar);
...
fileMenu.addSeparator();
fileMenu.addItem(saveMenuItem);
fileMenu.addItem(saveAsMenuItem);
fileMenu.addSeparator();

After commenting out the above lines of code they now look like this:

//fileMenu.addItem(newMenuBar);
...
//fileMenu.addSeparator();
//fileMenu.addItem(saveMenuItem);
//fileMenu.addItem(saveAsMenuItem);
//fileMenu.addSeparator();

If you were going to make this change permanent I would suggest you remove all instances of these menu items and sub items.

Save the file and rebuild the pentaho project, after this is complete the new menu-bar now looks like this:

Modify the Source Code Example 2

Change the URL of the logo-panel

To change the URL which the logo-panel points to you will need to edit the MantleApplication.java file in Eclipse which is located under the pentaho/3.5.0-GA/mantle/org/pentaho/mantle/client/ directory (pentaho is the name of the project). First locate this line of code:

logoPanel = new LogoPanel("http://www.pentaho.com/"); //$NON-NLS-1$

At the moment it is pointing to Pentaho’s homepage, in this example I would like to have the URL point to my blog’s homepage, the line of code now looks like this:

logoPanel = new LogoPanel("http://www.prashantraju.com/"); //$NON-NLS-1$

Save the file and rebuild the pentaho project, after this is complete when a user clicks on the logo-panel they are directed to my blog’s homepage:

Modify Source Code Example 3

Add a Logout Button to the main-toolbar

To add a logout button to the main-toolbar you will need to first create a function which you will be able to call from the main_toolbar.xul file. Open the MainToolbarController.java file in Eclipse which is located under the pentaho/3.5.0-GA/mantle/org/pentaho/mantle/client/toolbars/ directory.

The next step is to import the commands/LogoutCommand.java file, to do this add the following line to the header of the MainToolbarController.java file where the other imports are located:

import org.pentaho.mantle.client.commands.LogoutCommand;

The header section of the MainToolbarController.java file now looks like this:

package org.pentaho.mantle.client.toolbars;
 
import java.util.ArrayList;
import java.util.List;
 
import org.pentaho.mantle.client.commands.ShowBrowserCommand;
import org.pentaho.mantle.client.commands.ToggleWorkspaceCommand;
import org.pentaho.mantle.client.commands.LogoutCommand;
import org.pentaho.mantle.client.perspective.solutionbrowser.SolutionBrowserPerspective;
import org.pentaho.ui.xul.EventMethod;
import org.pentaho.ui.xul.binding.BindingFactory;
import org.pentaho.ui.xul.components.XulToolbarbutton;
import org.pentaho.ui.xul.gwt.binding.GwtBindingFactory;
import org.pentaho.ui.xul.impl.AbstractXulEventHandler;
import org.pentaho.ui.xul.stereotype.Bindable;
 
import com.google.gwt.core.client.JavaScriptObject;
...

The second step is to add the following function, logoutClicked() to the AbstractXulEventHandler() function, locate the following section of code:

@Bindable
public void showBrowserClicked(){
  ShowBrowserCommand showBrowserCommand = new ShowBrowserCommand(solutionBrowser);
  showBrowserCommand.execute();
  model.setShowBrowserSelected(solutionBrowser.isExplorerViewShowing());
}

Underneath the above section of code copy and paste the following function:

@Bindable
public void logoutClicked(){
 LogoutCommand logoutCommand = new LogoutCommand();
 logoutCommand.execute();
}



Save the file and rebuild the pentaho project and copy over the new directories and files. You will now need to make changes to the main_toolbar.xul file which is located under the tomcat/webapps/pentaho/mantle/xul/ directory. Open up the file in a text editor and add the following line of code:

<toolbarspacer width="10"/>
<toolbarbutton id="logoutButton" image="mantle/images/home_back_32.png" onclick="mainToolbarHandler.logoutClicked()" tooltiptext="${logout}"/>
  • toolbarspacer : Add a space of 10 pixels between the logout button and the solution browser toggle button
  • id : A unique identifier for the button (optional) i.e. logoutButton
  • image : The image which will be displayed for the logout button – I used this Logout (WooFunction Icons released under GNU GPL)
  • onclick : The function to call when the logout button is clicked – this is the function we created in the previous step logoutClicked(), this must be part of the mainToolbarHandler
  • tooltiptext : The tooltip which is displayed when the user hovers over the logout button – in this case there is already a logout message defined so I have reused this

The main_toolbar.xul file now looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="275" title="Placeholder"
  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"  xmlns:pen="http://www.pentaho.org/2008/xul" onload="mainToolbarHandler.init()">
  <toolbar id="mainToolbar">
    <toolbarspacer width="10"/>
    <toolbarbutton id="openButton" image="mantle/images/open_32.png" onclick="mainToolbarHandler.openClicked()" tooltiptext="${openEllipsis}"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="newAdhocButton" image="mantle/images/new_report_32.png" onclick="mainToolbarHandler.newAdhocClicked()" tooltiptext="${newAdhocReport}"/>
    <toolbarbutton id="newAnalysisButton" image="mantle/images/new_analysis_32.png" disabledimage="mantle/images/new_analysis_32_disabled.png" onclick="mainToolbarHandler.newAnalysisClicked()" tooltiptext="${newAnalysisView}"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="editContentButton" image="mantle/images/editContent_32.png" disabledimage="mantle/images/editContent_32_disabled.png"  onclick="mainToolbarHandler.editContentClicked()" tooltiptext="${editContent}" disabled="true" type="toggle" pen:visible="false"/>
    <toolbarspacer id="editButtonSpacer" width="20" pen:visible="false"/>
    <toolbarbutton id="saveButton" image="mantle/images/save_32.png" disabledimage="mantle/images/save_32_disabled.png" onclick="mainToolbarHandler.saveClicked()" tooltiptext="${save}" disabled="true"/>
    <toolbarbutton id="saveAsButton" image="mantle/images/saveAs_32.png" disabledimage="mantle/images/saveAs_32_disabled.png"  onclick="mainToolbarHandler.saveAsClicked()" tooltiptext="${saveAs}" disabled="true"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="printButton" image="mantle/images/print_32.png" disabledimage="mantle/images/print_32_disabled.png" onclick="mainToolbarHandler.printClicked()" tooltiptext="${print}" disabled="true"/>
    <toolbarspacer width="20"/>
    <toolbarbutton id="workspaceButton" image="mantle/images/workspace_32.png" type="toggle" onclick="mainToolbarHandler.workspaceClicked()" tooltiptext="${workspace}"/>
    <toolbarbutton id="showBrowserButton" image="mantle/images/browser_show_32.png" downimage="mantle/images/browser_hide_32.png" type="toggle" onclick="mainToolbarHandler.showBrowserClicked()" tooltiptext="${toggleSolutionBrowser}"/>
    <toolbarspacer width="10"/>
    <toolbarbutton id="logoutButton" image="mantle/images/logout_32.png" onclick="mainToolbarHandler.logoutClicked()" tooltiptext="${logout}"/>
  </toolbar>
</window>

Restart your Apache-Tomcat server and clear your browsers cache. The main-toolbar now looks like this:

Modify Source Code for Logout Button

When a User clicks on the Logout button they are logged out from the PUC.

Building the Source Code

To build the modified source code you will need to use Ant, as I mentioned early Ant comes packaged with Eclipse which makes it a lot easier to use. To start the build process right click on the build.xml file under the pentaho/3.5.0-GA/bi-platform-build/ directory and click the Run As > 1 Ant Build option:

Run as > 1 Ant Build

After clicking the 1 Ant Build option Eclipse will start the build process, you can monitor the build progress from the Output tab:

Output Tab

The following message will be displayed in the Output tab when the build process has completed successfully:

BUILD SUCCESSFUL
Total time: 10 minutes 4 seconds

It can take over 20 minutes to build the source code for the first time and consequent builds can take between 5 to 15 minutes – this depends on your system setup, internet connection etc.

Once the build process has finished you will need to copy the following directories and file over to your Pentaho BI Server installation:

  • mantle/
  • mantleLogin/
  • mantle-3.5.0.stable.jar

These directories and files are found under the pentaho/3.5.0-GA/mantle/dist/ directory. Before you copy these files over make sure you stop your Apache-Tomcat server and rename the current mantle/, mantleLogin/ and mantle-3.5.0.stable.jar so that they don’t cause any conflicts, in this example I renamed them to mantle.old/, mantleLogin.old/ and mantle-3.5.0.stable.old.jar.

The new mantle/, mantleLogin/ directories are inside the mantle-package-3.5-SNAPSHOT.zip file, extract the contents of this file into the tomcat/webapps/pentaho/ directory.
The new mantle.3.5.0.stable.jar file is also under the same directory but is named mantle-3.5-SNAPSHOT.jar, rename this file to mantle-3.5.0.stable.jar and copy it to the tomcat/webapps/pentaho/WEB-INF/lib/ directory.

After you have extracted and copied the new directories and file your tomcat/webapps/pentaho/ directory structure should now look like this:

  • tomcat/webapps/pentaho/
    • mantle/
    • mantle.old/
    • mantleLogin/
    • mantleLogin.old/
    • WEB-INF/
      • lib/
        • mantle-3.5.0.stable.jar
        • mantle-3.5.0.stable.old.jar

Do not overwrite original directories and files!

If you are using a more recent version of Pentaho BI Server i.e. 3.5.2 the .JAR file will have a different name i.e. mantle-3.5.2.stable.jar

Start your Apache-Tomcat server, clear your browsers cache and view the modifications you have made to source code.

Final Notes

I didn’t try and go into too much detail with the “Modifying the Source Code” section as I could of have written a whole book on it! Hopefully the examples I have provided give you a bit of a kick start with any modifications you need to make to customise the PUC user interface however the best way to learn is by trial and error. This is the approach I took and I have never touched Java before I started using Pentaho!

Good luck and enjoy.

Posted by Prashant Raju on Mar 2, 2010 — 87 CommentsShare

87 Comments for “Customising the Pentaho User Console – Part 3.”

  1. Posted by Surabil on Mar 2, 2010

    Great stuff! Keep up the amazing work !

    Cheers

  2. Posted by AnOs on Mar 3, 2010

    Hi,

    I try to Change the Default logo-panel Logo and it still show the old logo.
    I don’t know about that ?????
    Hope some answer for me

    Thk..

  3. Posted by AnOs on Mar 3, 2010

    Change the Default logo-panel Logo –> It’s works for me now.

    Thk lol.

  4. Posted by Jos van Dongen on Mar 3, 2010

    Hi Prashant,

    pure Gold this post, great stuff! Will save a lot of people a lot of work! Maybe you can add a ‘localization’ post as well in this series? I just did a complete translation in Dutch, I’ll send you what I’ve got (there’s a little more to it than in the forum manual ;-) ). One thing that concerns me though: how to handle platform updates? Being able to customize the UI is great, but preventing that my work gets overwritten by a new version is an essential prerequisite imho.

    best, Jos

  5. Posted by Sylvain on Mar 3, 2010

    Hi Prashant,

    Your post is a “3 stars post” !!!
    Really an excellent job (and subject)

    Welcome in my blogroll ;-)

    All the best

    Sylvain (a french Pentaho user)

  6. Posted by Prashant Raju on Mar 3, 2010

    @Jos

    I think I will need to keep adding to this series so send through what you have – more than happy to do a localisation dedicated post :)

    You put across a good point with new releases etc. I haven’t really thought about that but I believe CBF (Community Build Framework) is the answer. Once I have CBF working with my setup I will be following up this post with how to integrate UI changes with CBF. What are your thoughts?

    Thanks again.

    @Sylvain

    Thanks for the kind words! What’s the URL of your blog?

    Prashant.

  7. Posted by Nicole on Mar 4, 2010

    Very nice post, if only you’d posted 2/3 weeks ago before I had to work all of this out for myself!!

    Definitely would love a post on the CBF and mantle, I work for a Pentaho OEM partner and we update with the latest releases when we can. Customising everytime will be a pain without CBF or an equiv.

  8. Posted by Prashant Raju on Mar 4, 2010

    @Nicole,

    It sounds like it’s a follow up post to this series, I have some other posts in the works including a CDF & CDA post as well so keep checking back.

    Have you had a look into integrating these changes with CBF?

    Prashant.

  9. Posted by Sylvain on Mar 9, 2010

    Hi Prashant,

    My blog is here:
    http://www.osbi.fr

    All the best
    Sylvain

  10. Posted by praveen Rani on Mar 10, 2010

    Hi Prashant,

    good document,
    but i am not able to get the changes made in class files( jar file ).changes exist in class files, but dont reflect on screen even after removing history & cookies.

    please help
    Your help is urgently needed

  11. Posted by Prashant Raju on Mar 11, 2010

    @Praveen,

    What changes are you trying to do?

    Prashant.

  12. Posted by praveen Rani on Mar 11, 2010

    Hi prashant,
    thanks for reply.

    I am trying to change :

    Change the URL of the logo-panel
    Change the URL of Mneu –> help –>pentaho.com
    remove sub-menu : menu –> tools –> updates

    My changes are available in class files, when i see classes with debugger

    but none of the changes reflect, even after restarting browser, removing cookies & history, clearing tomcat work, temp, etc directories.

    your help is needed

    Thanks
    Praveen

  13. Posted by Prashant Raju on Mar 11, 2010

    @Praveen

    Did you copy the .JAR over and the mantle/ mantleLogin/ directories?
    Did you restart your Apache-Tomcat server?

    Prashant.

  14. Posted by praveen Rani on Mar 11, 2010

    prashant,

    yes i have restarted the Tomcat.
    but i have replaced the jar in Directory:
    biserver-ce-3.5.0.stable\biserver-ce\tomcat\webapps\pentaho\WEB-INF\lib

    (where previous jar mantle3.5.0.stable.jar is available)

    i don’t understand ur suggession — ‘copy the .JAR over and the mantle/ mantleLogin/ directories?’

    please help.
    Thanks
    Praveen Rani

  15. Posted by Prashant Raju on Mar 11, 2010

    @Praveen

    You will also need to copy the mantle/ and mantleLogin/ directories which are inside the mantle-package-3.5-SNAPSHOT.zip file and put them under the /tomcat/webapps/pentaho folder. Make sure you don’t overwrite the old files and just rename them – this could be way it isn’t working.

    Prashant

  16. Posted by praveen Rani on Mar 11, 2010

    Hi prashant
    I am unable to find
    mantle-package-3.5-SNAPSHOT.zip

    Thanks
    Praveen Rani

  17. Posted by Prashant Raju on Mar 11, 2010

    @Praveen,

    The .ZIP file is located under the same directory the .JAR file is. You will also need to rename your .JAR file, have you done this?

    Please re-follow the guide step by step as I think you have missed out on important steps.

    Prahsant

  18. Posted by Albert Aymerich on Mar 20, 2010

    Hi,

    To override default MantleSettings.properties with your own values, it is not necessary to modify mantle-3.5.x.jar file.

    Just put your own modified version of MantleSettings.properties into the folder (create it):

    …/webapps/pentaho/WEB-INF/classes/org/pentaho/mantle/server/

    Regards
    Albert

  19. Posted by Prashant Raju on Mar 21, 2010

    Hi Albert,

    Thanks for tip I’ll be sure to check it out!

    Prashant.

  20. Posted by Belouali on Mar 25, 2010

    Hi Prahsant,

    I want to thank you first for the effort that you put in this work. keep on

    I have a problem while checking out the pentaho open admin console: it’s missing three jars.

    gwt-dev-1.7.1.jar
    (I managed to get this one from internet under the name gwt-dev-1.7.1-windows.jar)
    gwt-dnd-2.5.6.jar
    (I found this one under ..\administration-console\lib)
    pentaho-gwt-widgets-2.1-SNAPSHOT-sources.jar
    (This one I couldn’t find it)

    Say what’s the problem here, why am I not getting the jars?

    Many thanks
    Belouali

  21. Posted by Prashant Raju on Mar 25, 2010

    @Belouali

    IvyDE should by default get all the necessary dependencies including the gwt files.

    Are you sure you are checking out the correct folders and letting IvyDE resolve all dependencies.

    Regards,
    Prashant

  22. Posted by Belouali on Mar 25, 2010

    Hi, I checked out the projects from the links that you put in the tutorial:

    * svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.2.stable
    * svn://source.pentaho.org/svnroot/legacy/pentaho-xul/trunk
    * svn://source.pentaho.org/svnroot/pentaho-commons/pentaho-gwt-modules/trunk
    * svn://source.pentaho.org/svnroot/pentaho-open-admin-console/tags/3.5.2.stable

    I let IvyIDE resolve the dependencies till it stops. An Eclipse window pop up showing a refreshing error and keeps trying refreshing.

    Well finally I managed to get the jars from internet….

    But Now when building with ant I am getting this error
    …\workspace\pentaho\3.5.2.stable\bi-platform-api\common_build.xml:1069: Error running javac.exe compiler

    I have the JDK already installed and configured in eclipse… Any idea??

  23. Posted by Prashant Raju on Mar 25, 2010

    @Belouali,

    Looks like you haven’t setup Java correctly with Windows – maybe do a google on that error there should be heaps out there on the topic!

    Prashant

  24. Posted by Praveen Rani on Mar 26, 2010

    Hi Prashant

    we are facing problem in compiling the source code of pentaho for customizations.Build process goes for 2 hours & after that build get failed .

    we are using
    Eclipse galilio
    subeclipse 1.6
    ivyde 2.0
    ant version : default in eclipse

    Can u tell me the environment used by u for pentaho customizations. like.

    version of eclipse,
    version of ivyde
    version of ant
    version of subeclipse

    may be this will help us.
    Thanks
    Praveen Rani

  25. Posted by Belouali on Mar 30, 2010

    @Praveen Rani: could you be more specific about the error that you get when building, that way you may get help…
    is it an error like mine common_build.xml:1069: Error running javac.exe compiler, if so I can help you, I finally got over it.

  26. Posted by sagar kohli on Mar 30, 2010

    hi prashant,

    excellent post,
    but i dont no why i am facing problem when i am tring to build bi server from source,

    my eclipse IDE is giving
    ‘An internal error occurred during: “Refreshing workspace”.
    Element not found: /pentaho/3.5.2.stable/bi-platform-sample-solution/system/custom/xsl.’

    message when i downloaded bi source.

    my environment is
    eclipse 3.4
    svn 1.2.4
    java 6

    please help me out i have tried it several time but unable to compile it

    thanks

  27. Posted by praveen rani on Mar 31, 2010

    Hi,

    Thanks for the help.
    now i am able to compile code successfully & able to see the changes made by us.

    I need one more help from you.

    can you tell me how can i add currentdate on my customized pentaho portal UI.

    thanks in advance

    praveen

  28. Posted by Prashant Raju on Apr 2, 2010

    @praveen

    You should be able to see how file menu items are added i.e. “File”, “Help” etc. and then copy the same method to add the current date or time to the end of the file menu bar.

    Post back how you go and the code if you were successful!

    Prashant.

  29. Posted by Prashant Raju on Apr 2, 2010

    @sagar,

    Does this occur when you are building the source or when you are just checking out the source?

    Prashant.

  30. Posted by praveen rani on Apr 7, 2010

    Hi Prashant,
    Thanks.
    Now i am able to add date on my menu bar.
    I use the same way as suggested by you.

    I use the code:
    MenuBar dateMenu = new MenuBar(false);
    dateMenu.getElement().setId(“date_menu”);
    java.util.Date currentDate=new java.util.Date();

    MenuItem dateMenuBar = new MenuItem(currentDate, dateMenu);
    helpMenuBar.getElement().setId(“date_menu_bar”);
    menuBar.addItem(dateMenuBar);

    Thanks
    Praveen

  31. Posted by praveen rani on Apr 7, 2010

    Hi prashant
    Now i have another problem.
    I am trying to change the font of login dialog from MantleLoginDialog.java class.
    I am able to change the font of userName, Password .
    But not for Login Dialog header,Login Text, Cancel Text on that dialog box.

    These components are taken from trunk package(org.pentaho.gwt.widgets.client.*).I am not able to get changed data after changing code there.

    Can u please tell me any solution, I will be thankful to u

    Thanks
    Praveen Rani

  32. Posted by Prashant Raju on Apr 7, 2010

    @Praveen

    If you mean font in terms of font type then that is done in the CSS, grab firebug for firefox and have a deeper look at the code.

    If you mean font in terms of the output i.e. Login have you looked at the previous part to this post (part 2)?

    Prashant.

  33. Posted by Rajdeep on Apr 8, 2010

    Hi Prashant,

    I want to remove the “new report” option from the main page, could you please assist me in doing that.

    Thanks in advance
    Rajdeeo

  34. Posted by praveen Rani on Apr 8, 2010

    Hi Prashant

    I have checked Part 2. But i want to change in another way.

    I want PUCLogin.jsp Page as it is.
    when click on button ‘Pentaho User Login’, it shows a dialog box.
    I wants to make changes on that dialog box (Changes Like font-Wight,Font-Type, Font-color etc…).
    I am able to make changes for ‘User Name’, ‘Password’, ‘Launch in New Window’ through code change in MantleLoginDialog.java class.
    But i am not able to change font for ‘dialog header’, ‘Login’ for ok button,’Cancel’ for cancel button

    I need to change font for then also.
    Code for these changes has been given in package downloaded from :-
    svn://source.pentaho.org/svnroot/pentaho-commons/pentaho-gwt-modules/trunk

    but
    1. I am unable to compile that code to take effct
    2. don’t know where to replace jar file created after compilation (if successful in compilation)

    Waiting for a positive solution for my problem…

    Thanks
    Praveen Rani

  35. Posted by Prashant Raju on Apr 8, 2010

    Praveen,

    As I said those can be changed with CSS. Have a look at the PUCLogin.JSP file (the first part of this series of posts) and change the CSS which sites in that page.

    Prashant.

  36. Posted by Prashant Raju on Apr 8, 2010

    Rajdeep

    Have a read through part 4, it covers how to exactly do this.

    Prashant

  37. Posted by praveen Rani on Apr 8, 2010

    Hi prashant,
    Please understand my problem,
    I don’t want to change PUCLogin Page.

    I want to change only Login Dialog Box appears after clicking button having text ‘Pentaho User Console Login’ available on right side of PUCLogin Page.

    I think,now u will be able to understand my problem.

    Thanks
    Praveen Rani.

  38. Posted by Prashant Raju on Apr 8, 2010

    Praveen

    For the third time use firebug to inspect the classes which are attached to each of those labels. You can then override these classes by specifying CSS inside the PUCLogin.jsp for example:

    .caption { font-size: 300% !important; }

    Will change the font size of the Login text (the text seen in the header of the pop-up form). If you want to use a more clean method you will have to go through the source or search the source for the specific class names used i.e. gwtLabel etc. Sorry but that is the only answer(s) I can offer for your question.

    Prashant.

  39. Posted by praveen rani on Apr 12, 2010

    Hi prashant,

    I want an another help from u.
    i want to shift a menu item ie. ‘Help’ menu towards right side of the menu bar.

    What I should do to shift it.

    Thanks

    Praveen Rani

  40. Posted by Prashant Raju on Apr 12, 2010

    Praveen

    That would involve some CSS, have a look at how to float elements i.e.

    Prashant

  41. Posted by Mamta on Jun 10, 2010

    Hi Prashant..nice blog..
    I am facing one problem as i am new to pentaho…
    I created my Dashboards..
    As in pentaho Ui Its displaying Steel-wheel under that some folders like analysis,chart ,dashboards…
    I want to create my own struture.how to do tht.help needed thanks…

  42. Posted by Prashant Raju on Jun 11, 2010

    Mamta

    I assume you are talking about ‘solutions’. You can create them by right clicking in the solution browser area and clicking on New. This actually creates folders under the pentaho-solutions folder along with index.xml and index.properties files.

    Prashant

  43. Posted by sedi on Jun 17, 2010

    Hi,

    Thinks for this great guide.
    I have a problem like Belouali. And when Eclipse resolve the dependencies, it returns these errors:

    it’s missing three jars.

    gwt-dev-1.7.1.jar
    gwt-dnd-2.5.6.jar
    pentaho-gwt-widgets-2.1-SNAPSHOT-sources.jar

    Is there any thing that should be done after downloading the dependencies?

    Sedi

    Ivy downloads all jar files in this directory:
    /User-Home/.ivy/cache/…

  44. Posted by Prashant Raju on Jun 17, 2010

    sedi

    Are you checking out this folder?

    svn://source.pentaho.org/svnroot/pentaho-commons/pentaho-gwt-modules/trunk

    The *-gwt-* jars sit in there.

    Prashant

  45. Posted by Sedi on Jun 19, 2010

    Hi,

    Thank Prashant for your attention.
    I have checked it out too.
    But I receive the bellow warning for build.xml:

    E:\WorkSpace-Eclipse\pentaho\pentaho-xul\svnant not found.

    And more than 2500 errors for ‘pentaho-open-admin-console’ and ‘pentaho-xul’ projects.

    Sedi

  46. Posted by supersonic on Jun 23, 2010

    Hi, thanks you did an excellent guide

    I am facing one problem as i am new to Pentaho …

    I want the startup-url-1 is to Dashboard.

    startup-url-1 = content/dashboard?solution=prova&path=/charts&action_name=charts.xcdf

    but does not work

    the path is: pentaho-solution/business/charts/chart.xcdf

  47. Posted by supersonic on Jun 23, 2010

    Sorry…

    startup-url-1 = content/dashboard?solution=business&path=/charts&action_name=charts.xcdf

    but does not work

  48. Posted by Prashant Raju on Jun 26, 2010

    @supersonic

    What is the error you are getting?

    Prashant

  49. Posted by sowe on Jun 27, 2010

    Hi Parshant:
    I try to compiler all pentaho but I’ve a problem. the project mantel. the error is this
    Description Resource Path Location Type Project ‘mantle’ is missing required library: ‘dev-lib/gwt-dev-1.7.1.jar’ why?.
    I have configured ivy.xml and other projects are well.

    your blog is amazing, thanks

  50. Posted by Juan Carlos Moreno on Jul 7, 2010

    Hi Belouali,

    Did you manage to solve your problem? I have the same problem when trying to build the code…

    Thanks a lot in advance!

  51. Posted by supersonic on Jul 7, 2010

    Hi Prashant i have Change the URL of the logo-panel but while i build the source code there is a error.

    BUILD FAILED
    /home/user/workspace/pentaho/3.5.0-GA/bi-platform-build/build.xml:66: The following error occurred while executing this line:
    /home/user/workspace/pentaho/3.5.0-GA/bi-platform-build/build.xml:68: The following error occurred while executing this line:
    /home/user/workspace/pentaho/3.5.0-GA/bi-platform-api/common_build.xml:1069: Error running javac compiler

  52. Posted by amine on Jul 9, 2010

    @SuperSonic

    Salam SuperSonic,

    Just read before the 3 lines that you copied.

    You’ll find something like [javac] target 1.5s

    Just click on the [javac] it will send you to the code and you’ill find target=”1.5s”

    Just remove the ‘s’ and the compilation will go fine without this error !

    Good luck!

  53. Posted by supersonic on Jul 13, 2010

    Hi Prashant thanks for help.

    I want launch a startup-url-1 with a report created by report designer(report.prdt)

    What is a syntax?

  54. Posted by supersonic on Jul 21, 2010

    Hi amine,
    I checked the java target but I could not find the “1.5s” but I found “1.5″, how can I solve?

  55. Posted by Moritz on Jul 22, 2010

    Hey Prashant,

    great work, I like your well composed tutorial!

    I read your answer about the possibility for users to change their password on their own in the pentaho forums (http://forums.pentaho.org/showthread.php?t=75828&highlight=password), but after setting show-advanced-features=true, the menu point “user preferences” appears, but doesn’t do anything on clicking it.

    Do I have to change something else to get the user-change-password-ability working?

    Thanks for the help!

  56. Posted by glahuka on Aug 3, 2010

    Hi,

    I have also problems with the libraries, I’ve found two, but I can not find the pentaho-gwt-widgets-2.1-SNAPSHOT-sources.jar,

    Could anyone tell me where I can download it, please?

    Thanks!

  57. Posted by glahuka on Aug 10, 2010

    Hi all,

    I think than I’ve resolved the library problem… I download all the svn://source.pentaho.org/svnroot/pentaho-open-admin-console/ folder, instead of download only the tag/3.x.x one.

    Now I compile the code and it works!! ;)

  58. Posted by Fran Ramírez on Aug 13, 2010

    Hi,

    Prashant, excellent job!!

    If I would like tested with version 3.6.0-stable,
    What version of svn://source.pentaho.org/svnroot/pentaho-open-admin-console/tags need?
    I can use svn://source.pentaho.org/svnroot/pentaho-open-admin-console/tags/3.5.2.stable?

    Thanks!

  59. Posted by Iván on Aug 13, 2010

    Hello,

    I’m deployed Pentaho in Oracle AS 10.1.3.5.0 but I can’t log into the apliccation.

    Always appears a generic error message and nothing else.

    I’m trying to debug with Firebug but I only obtain this: login_error 1 in the action

    Can you help me to solve this problem?

    Thanks

  60. Posted by Fran Ramírez on Aug 25, 2010

    I need to know the active user in the session, which has made the login. I would be interested in the class MantleApplication recover.
    I tried everything, but I don’t can get it.

    You know how to retrieve the user session in the MantleApplication class?
    Or you can give me something?

    Thanks

  61. Posted by supersonic on Aug 26, 2010

    Hi Prashant

    I want to add a button to the toolbar.

    I modified the file “main_toolbar.xul,” I added this button

    How I can connect the button to the home page(launch.jsp)?

  62. Posted by supersonic on Aug 27, 2010

    I solved by adding the attribute “onclick”

    onclick = “mainToolbarHandler.openUrl (‘Home’, ‘Home’, ‘/ Pentaho / Mantle / launch / launch.jsp’)” ToolTipText = “Home Page” />

    when I click open a TAB of Pentaho, but I want when I click the button to the homepage, this page overwrite the previous page.

    How can I do?

  63. Posted by Juan Gordon on Sep 11, 2010

    Hi Prashant,

    First of all, thanks for your post, is really usefull !

    I have a question , can i have differents customizations of the user console? , i want to have one version for “admin” role and another version for “user” role.

    Thanks a lot

    Juan

  64. Posted by Prashant Raju on Sep 11, 2010

    Juan,

    By default the Admin role has different options than any other User.

    If you wanted to make further changes you will need to dig deep into the source code.

    Prashant

  65. Posted by Ale on Sep 15, 2010

    Hi Prashant!
    Thank for this post, It’s great!
    I try to Change the URL of the logo-panel but while i build the source code there is a error:

    BUILD FAILED
    ..\Pentaho\3.5.0-GA\bi-platform-build\build.xml:66: The following error occurred while executing this line:
    ..\Pentaho\3.5.0-GA\bi-platform-build\build.xml:68: The following error occurred while executing this line:
    ..\Pentaho\3.5.0-GA\mantle\build.xml:42: The following error occurred while executing this line:
    ..\Pentaho\3.5.0-GA\mantle\gwt_common_build.xml:131: Java returned: 1

    Thank!!

    Ale

  66. Posted by PriyankaP on Oct 5, 2010

    Hi,

    Read your blog… found very helpful..

    In the blog, you have mentioned about

    svn://source.pentaho.org/svnroot/bi-platform-v2/tags/3.5.0-GA
    svn://source.pentaho.org/svnroot/legacy/pentaho-xul/trunk
    svn://source.pentaho.org/svnroot/pentaho-commons/pentaho-gwt-modules/trunk
    svn://source.pentaho.org/svnroot/pentaho-open-admin-console/tags/3.5.0-GA

    I do not have internet connection on my working pc… and because of this, my new project installation remains incomplete/incorrect… (connection error)

    Is there any way to separately download these files (like manually installing subclipse) and than manually use it?

    I need help urgently… please help…

    Thanks & Regards

    :-)

  67. Posted by Markus on Nov 11, 2010

    Hi Prashant,

    thanks for great documentation.
    I want to change the URL from

    http://localhost:8080/pentaho/Login

    http://localhost:8080/MyReports/Login.

    What do I have to change and where?
    Thanks a lot for your support!

    Markus

  68. Posted by kavya on Dec 1, 2010

    Hello,
    How about implementing the same in 3.7

  69. Posted by Mohit on Feb 11, 2011

    Hi Prashant,

    I want to embed a full local website in Pentaho user login page.

    # startup urls (each displays in its own tab)
    num-startup-urls=2
    startup-url-1=/pentaho/welcome/welcome.html
    startup-name-1=Welcome
    startup-url-2=http://www.pentaho.com
    startup-name-2=Pentaho Business Intelligence
    startup-url-3=/pentaho/ViewAction?solution=samples&path=/reporting&action=JFree_Quad.xaction
    startup-url-4=/pentaho/SampleDashboard

    In this code, is it possible instead of pentaho welcome.html I can start my own site as welcome screen. It will be like a site within a site.

    Is it possible ??

    Regards,
    MOHIT

  70. Posted by Per on Feb 22, 2011

    Hi and thanks for a great guide!

    I’ve been trying to modify the main_toolbar.xul in 3.7.0, but as soon as I remove a button or so I get the error message “error initializing xul runner maintoolbarhandler.init” when I restart tomcat. The whole toolbar is also missing. What am I missing?

  71. Posted by Darrin Blocker on Mar 3, 2011

    Excellent Article!! We are an EE customer and needed to make some modifications like removing some items from the menu and tool bars. Even though there has been some slight re-factoring since 3.5.2 we were able to accomplish the changes with minimal effort. We are currently on 3.7.0 GA and everything works as expected.

    Thanks for this great post!!

  72. Posted by cascade on Mar 17, 2011

    Great article.

    Helpded alot. BUT…

    We are trying to create a new toolbar button. Worked fine following your instructions until we came to the main_toolbar.xul file. We created the entry for our new button:

    The button needs to open a xaction but we do not want to change source code. Is there any existing function that allows us to run an xaction from this button?

    Thank you.

  73. Posted by Simone on May 10, 2011

    Hi Prashant thanks for your guide, i tried with following versions 3.6 3.8 3.6.0-GA 3.7.0-GA 3.8.0-GA,4.1.1-GA.
    The problem is that this file
    http://repo1.maven.org/maven2/gnujax…jaxp-1.0.0.jar
    is not found

    and this is the output of compiling

    [ivy:resolve]
    ::::::::::::::::::::::::::::::::::::::::::::::
    [ivy:resolve] :: UNRESOLVED DEPENDENCIES ::
    [ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
    [ivy:resolve] :: gnujaxp#gnujaxp;1.0.0: not found
    [ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::
    [ivy:resolve]
    [ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

    I guess, maybe, it’s a problem with the server http://repo1.maven.org, because some jars needed to build are no longer available. Does anyone had the same problem?
    Sorry for my incorrect english
    thank you in advance
    Best wishes
    Simone

  74. Posted by Steve on Jun 30, 2011

    Hi Prashant, this is a nice guide help me a lot.

    i’m working whit the 3.8.0-stable version, and works as expected.

    thanks.

  75. Posted by Pathum Herath on Jul 6, 2011

    Hi Prashant,

    Thank you very much for this great article. It helps me alot in customizing the Pentaho. I had an issue in hiding the solution browser panel I tried show-explorer-view-on-startup=false but it won’t work. my BI server version is 3.7 and Im using CDE 1.0 RC3

    If you have any idea pls let me know.

    Thanks again.
    Regards
    Pathum

  76. Posted by saurabh on Jul 29, 2011

    Hi Prashant ,
    i have some promblem plz give me some suggestion.

    Please consider following case.

    - I’ve BI server 3.7 CE stable version
    - There is one table say ‘UserInfo’, having User information with user id as primary key.
    - All user,existing in ‘UserInfo’ table have access to create Data Source
    - Please provide steps so that one user can not see other users’ data i.e. how can I use user id implicitly in Data Source so that user will be restricted to only his data.

    otherwise
    one user see the specific database connection this connection not see by another user. i.e. we have 2 connection like con1, con2. also have 2 user user1,user2 i want user1 use only con1 and user 2 use only con2.
    plz give some suggestion.
    Thanks in advance
    Saurabh

  77. Posted by smarty on Aug 23, 2011

    Can we customize the Left tree panel.
    How to change the icons , background color , font etc.. ?

  78. Posted by Franco on Oct 3, 2011

    Hello,

    I have this problem when i debug :

    BUILD FAILED
    C:\dataeclipse\pentaho\3.8.0-stable\bi-platform-build\build.xml:66: The following error occurred while executing this line:
    C:\dataeclipse\pentaho\3.8.0-stable\bi-platform-build\build.xml:68: The following error occurred while executing this line:
    C:\dataeclipse\pentaho\3.8.0-stable\bi-platform-api\build-res\subfloor.xml:917: Error running javac.exe compiler

    I do not know of or have the problem, you have an idea?

  79. Posted by veer sachan on Mar 21, 2012

    Please help
    how to change pentaho URL logo. and URL path from
    http://192.155.4.33:8080/pentaho/Home??locale=en
    to
    http://192.168.4.33:8080/mis/Home??locale=en

    i want to change pentaho as mis.

  80. Posted by veer sachan on Mar 21, 2012

    how to set own default home page (as prpt report) after user login.

  81. Posted by Akash on Aug 3, 2012

    Hello Prashanth,

    The guide you have is great, Was great help for us.

    I do have a question:

    Is it possible to have user specific Dashboards as launch page. So that User A will see Dashboard A, and User B will see Dashboard B.

    Thanks in advance!

    Cheers!!
    Akash.

  82. Posted by ShikhaT on Nov 6, 2012

    Hi Prashanth,

    I have two query,

    1.In my dashboard(enterprise one) there are few prompts and one report anyalyzer. I have mapped those prompts with my analyzer. But the problem is that whenever i do cascading on prompts both prompts and analyzer gets refreshed.. However our requirement is to refresh only prompts and when it is done, analyzer should fetch data and display the report.

    2. Whenever i do cascading, filters of analyzer report gets refreshed with prompt data and (+) sign gets expanded.so, I would like to know is there any setting or something so that (+) aint get expanded with every refresh on filter.

    Regards,
    Shikha

  83. Posted by ShikhaT on Nov 6, 2012

    **2nd question is resolved..plz help me with first one..**

    **answer of second question:** While saving analyzer report make sure that filter pane is collapsed and pull the saved report on dashboard.

    As a result when we do cascading, filters of analyzer report gets updated with prompt data and filter pane remains collapsed. :)

  84. Posted by Dick on Nov 9, 2012

    Hi Prashant,

    I try do follow this great article, to modify 4.5.0-GA version.

    When building I get the error:

    !MESSAGE Conflicting handlers for org.eclipse.jdt.ui.edit.text.java.open.editor: {ActionHandler(org.eclipse.ant.internal.ui.editor.actions.OpenDeclarationAction@c2fc9f)} vs {ActionHandler(org.eclipse.ant.internal.ui.editor.actions.OpenDeclarationAction@c2fc9f)}

    Do you have any idea what could be wrong?

    Any help would be very welcome!

    Dick

  85. Posted by Rahul on Jan 3, 2013

    Hi Prashant,

    Have you explored customizing the admin console?
    - localhost:8099
    - localhost:8080/pentaho/Admin

  86. Posted by Mateen on Mar 19, 2013

    Hi All,

    I am using bi version 4.5 and i am not able to use svn repository link in eclipse… for 4.5
    which is svn://source.pentaho.org/svnroot/bi-platform-v2/tags/4.5.0-GA
    while using this i am getting error (which is working fine in kdesvn)

    i have consistently followed this tutorial for sources modification….

    if any body knows it then please let me know

    Regards,
    Mateen SA

  87. Posted by kranthi on Jun 25, 2013

    Hi Prashant

    thanks for the post,, i am trying to customize the browse panel on the left side. i am trying to add all the files(reports) under the folders and remove the files panel.

    so the view should be like this.. i should have a left side panel with folders and when i click on the folder the reports should showlike a tree structure under the folders and the files panle should completely be removed. could you please share your ideas on this..

    thanks
    kranhti


Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>