Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * This program is free software; you can redistribute it and/or modify it under the 
   * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software 
   * Foundation.
   *
   * You should have received a copy of the GNU Lesser General Public License along with this 
   * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html 
   * or from the Free Software Foundation, Inc., 
   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  * See the GNU Lesser General Public License for more details.
  *
  * Copyright 2005 - 2009 Pentaho Corporation.  All rights reserved.
  *
  *
  * @created Nov 5, 2005
  * @author James Dixon
  */
 
 package org.pentaho.platform.plugin.action.mondrian;
 
 import java.util.List;
 import java.util.Set;
 
 import  org.pentaho.platform.engine.services.solution.ComponentBase;
 import  org.pentaho.platform.engine.services.solution.StandardSettings;
 import  org.pentaho.platform.util.messages.LocaleHelper;
 
 public class PivotViewComponent extends ComponentBase {
 
   public static final String MODE = "mode"//$NON-NLS-1$
 
   public static final String MODEL = "model"//$NON-NLS-1$
 
   public static final String OPTIONS = "options"//$NON-NLS-1$
 
   public static final String CONNECTION = "connection"//$NON-NLS-1$
 
   public static final String TITLE = "title"//$NON-NLS-1$
 
   public static final String URL = "url"//$NON-NLS-1$
 
   public static final String VIEWER = "viewer"//$NON-NLS-1$
 
   public static final String EXECUTE = "execute"//$NON-NLS-1$
 
   public static final String SHOWGRID = "showgrid"//$NON-NLS-1$
 
   public static final String CHARTTYPE = "charttype"//$NON-NLS-1$
 
   public static final String CHARTLOCATION = "chartlocation"//$NON-NLS-1$
 
   public static final String CHARTWIDTH = "chartwidth"//$NON-NLS-1$
 
   public static final String CHARTHEIGHT = "chartheight"//$NON-NLS-1$
 
   public static final String CHARTDRILLTHROUGHENABLED = "chartdrillthroughenabled"//$NON-NLS-1$
 
   public static final String CHARTTITLE = "charttitle"//$NON-NLS-1$
 
   public static final String CHARTTITLEFONTFAMILY = "charttitlefontfamily"//$NON-NLS-1$
 
   public static final String CHARTTITLEFONTSTYLE = "charttitlefontstyle"//$NON-NLS-1$
 
   public static final String CHARTTITLEFONTSIZE = "charttitlefontsize"//$NON-NLS-1$
 
   public static final String CHARTHORIZAXISLABEL = "charthorizaxislabel"//$NON-NLS-1$
 
   public static final String CHARTVERTAXISLABEL = "chartvertaxislabel"//$NON-NLS-1$
 
   public static final String CHARTAXISLABELFONTFAMILY = "chartaxislabelfontfamily"//$NON-NLS-1$
 
   public static final String CHARTAXISLABELFONTSTYLE = "chartaxislabelfontstyle"//$NON-NLS-1$
 
   public static final String CHARTAXISLABELFONTSIZE = "chartaxislabelfontsize"//$NON-NLS-1$
 
   public static final String CHARTAXISTICKFONTFAMILY = "chartaxistickfontfamily"//$NON-NLS-1$
 
   public static final String CHARTAXISTICKFONTSTYLE = "chartaxistickfontstyle"//$NON-NLS-1$
 
   public static final String CHARTAXISTICKFONTSIZE = "chartaxistickfontsize"//$NON-NLS-1$
 
   public static final String CHARTAXISTICKLABELROTATION = "chartaxisticklabelrotation"//$NON-NLS-1$
 
   public static final String CHARTSHOWLEGEND = "chartshowlegend"//$NON-NLS-1$
 
   public static final String CHARTLEGENDLOCATION = "chartlegendlocation"//$NON-NLS-1$
 
  public static final String CHARTLEGENDFONTFAMILY = "chartlegendfontfamily"//$NON-NLS-1$
  public static final String CHARTLEGENDFONTSTYLE = "chartlegendfontstyle"//$NON-NLS-1$
  public static final String CHARTLEGENDFONTSIZE = "chartlegendfontsize"//$NON-NLS-1$
  public static final String CHARTSHOWSLICER = "chartshowslicer"//$NON-NLS-1$
  public static final String CHARTSLICERLOCATION = "chartslicerlocation"//$NON-NLS-1$
  public static final String CHARTSLICERALIGNMENT = "chartsliceralignment"//$NON-NLS-1$
  public static final String CHARTSLICERFONTFAMILY = "chartslicerfontfamily"//$NON-NLS-1$
  public static final String CHARTSLICERFONTSTYLE = "chartslicerfontstyle"//$NON-NLS-1$
  public static final String CHARTSLICERFONTSIZE = "chartslicerfontsize"//$NON-NLS-1$
  public static final String CHARTBACKGROUNDR = "chartbackgroundr"//$NON-NLS-1$
  public static final String CHARTBACKGROUNDG = "chartbackgroundg"//$NON-NLS-1$
  public static final String CHARTBACKGROUNDB = "chartbackgroundb"//$NON-NLS-1$
  public static final String ROLE = "role"//$NON-NLS-1$
  public static final String CUBE = "cube"//$NON-NLS-1$
  private static final long serialVersionUID = -327755990995067478L;
  private static final Collection ignoreInputs = Arrays.asList(new String[] { .,
      StandardSettings.SQL_QUERY, StandardSettings.QUERY_NAME, . });
  public Log getLogger() {
    return LogFactory.getLog(PivotViewComponent.class);
  }
  protected boolean validateAction() {
      error(Messages.getErrorString("PivotView.ERROR_0001_OPTIONS_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
      error(Messages.getErrorString("PivotView.ERROR_0002_MODEL_NOT_DEFIEND")); //$NON-NLS-1$
      return false;
    }
      error(Messages.getErrorString("PivotView.ERROR_0003_CONNECTION_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
    if (!isDefinedOutput(StandardSettings.MDX_QUERY)) {
      error(Messages.getErrorString("PivotView.ERROR_0004_MDX_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
      error(Messages.getErrorString("PivotView.ERROR_0007_TITLE_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
      error(Messages.getErrorString("PivotView.ERROR_0005_MODE_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
      error(Messages.getErrorString("PivotView.ERROR_0008_URL_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
    if (!isDefinedInput(StandardSettings.SQL_QUERY) && !isDefinedInput(StandardSettings.QUERY_NAME)) {
      error(Messages.getErrorString("PivotView.ERROR_0009_QUERY_NOT_DEFINED")); //$NON-NLS-1$
      return false;
    }
    return true;
  }
  protected boolean validateSystemSettings() {
    return true;
  }
  public void done() {
  }
  protected boolean executeAction() throws Throwable {
    Set inputNames = getInputNames();
    Set outputNames = getOutputNames();
    if (!mode.equals(.)) {
      // assume this is a redirect
        // we need the viewer output
        error(Messages.getString("PivotView.ERROR_0006_VIEWER_NOT_DEFINED")); //$NON-NLS-1$
        return false;
      }
      if (viewer.indexOf('?') == -1) {
        viewer += "?solution=" + getSolutionName() + "&path=" + getSolutionPath() + "&action=" + getActionName(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
      } else {
        viewer += "solution=" + getSolutionName() + "&path=" + getSolutionPath() + "&action=" + getActionName(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
      }
      for (Iterator it = inputNames.iterator(); it.hasNext();) {
        String name = (Stringit.next();
        if (!..contains(name)) {
          viewer += "&" + name + "=" + URLEncoder.encode(getInputStringValue(name), LocaleHelper.getSystemEncoding()); //$NON-NLS-1$ //$NON-NLS-2$
        }
      }
      return true;
    }
    String roleName = null;
        setOutputValue(.roleName);
      }
    }
    // process the model
    String model = getInputStringValue(StandardSettings.DATA_MODEL);
    //    if (model.indexOf("http") != 0) { //$NON-NLS-1$
    //      model = PentahoSystem.getApplicationContext().getBaseUrl() + "GetMondrianModel?model=" + model; //$NON-NLS-1$
    //    }
    //
    // Allow fully-qualified model reference to pass un-molested
    //
    if (!model.startsWith("solution:") && !model.startsWith("http:")) { //$NON-NLS-1$ //$NON-NLS-2$
      model = "solution:" + model//$NON-NLS-1$
    }
    setOutputValue(StandardSettings.DATA_MODEL, model);
      }
    }
      }
    }
      }
    }
      }
    }
      }
    }
        setOutputValue(.,
      }
    }
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
        setOutputValue(.,
      }
    }
      }
    }
      }
    }
      }
    }
    // process the data source connection
    String dataSource = getInputStringValue(StandardSettings.JNDI);
    setOutputValue(StandardSettings.CONNECTION, dataSource); //$NON-NLS-1$
    // process the query
    String queryName = StandardSettings.SQL_QUERY;
    if (inputNames.contains(StandardSettings.QUERY_NAME)) {
      queryName = getInputStringValue(StandardSettings.QUERY_NAME);
    }
    String query = getInputStringValue(queryName);
    // if query = "default", generate a query
    if (query.equals(StandardSettings.DEFAULT)) {
      // get the default cube.  This is only useful if the schema contains more
      // we need to generate a query.
      query = MondrianModelComponent.getInitialQuery(modeldataSourcecuberoleNamegetSession());
    }
    String mdx = applyInputsToFormat(query);
    setOutputValue(StandardSettings.MDX_QUERY, mdx);
    // now process the options
    ArrayList options = new ArrayList();
    Element optionsNode = (ElementgetComponentDefinition().selectSingleNode("options"); //$NON-NLS-1$
    List optionNodes = optionsNode.elements();
    Iterator optionsIterator = optionNodes.iterator();
    while (optionsIterator.hasNext()) {
      Element optionNode = (ElementoptionsIterator.next();
      options.add(optionNode.getName());
    }
    if (options.size() > 0) {
      if (outputNames.contains(.)) {
        setOutputValue(.options);
      } else {
        error(Messages.getErrorString("PivotView.ERROR_0001_OPTIONS_NOT_DEFINED")); //$NON-NLS-1$
        return false;
      }
    }
    return true;
  }
  public boolean init() {
    return true;
  }
New to GrepCode? Check out our FAQ X