📄 mondriandrillthrough.java
字号:
/*
* ====================================================================
* This software is subject to the terms of the Common Public License
* Agreement, available at the following URL:
* http://www.opensource.org/licenses/cpl.html .
* Copyright (C) 2003-2004 TONBELLER AG.
* All Rights Reserved.
* You must accept the terms of that agreement to use this software.
* ====================================================================
*
*
*/
package com.tonbeller.jpivot.mondrian;
import mondrian.olap.Util.PropertyList;
import mondrian.rolap.RolapConnectionProperties;
import com.tonbeller.jpivot.core.ExtensionSupport;
import com.tonbeller.jpivot.olap.model.Cell;
import com.tonbeller.jpivot.olap.navi.DrillThrough;
import com.tonbeller.wcf.table.TableModel;
/**
* @author Robin Bagot
*
* Implementation of the DrillExpand Extension for Mondrian Data Source.
*/
public class MondrianDrillThrough extends ExtensionSupport implements DrillThrough {
private boolean extendedContext = true;
/**
* Constructor sets ID
*/
public MondrianDrillThrough() {
super.setId(DrillThrough.ID);
}
/**
* drill through is possible if <code>member</code> is not calculated
*/
public boolean canDrillThrough(Cell cell) {
return ((MondrianCell) cell).getMonCell().canDrillThrough();
//String sql = ((MondrianCell) cell).getMonCell().getDrillThroughSQL(extendedContext);
//return sql != null;
}
/**
* does a drill through, retrieves data that makes up the selected Cell
*/
public TableModel drillThrough(Cell cell) {
String sql = ((MondrianCell) cell).getMonCell().getDrillThroughSQL(extendedContext);
if (sql == null) {
throw new NullPointerException("DrillThroughSQL returned null");
}
MondrianDrillThroughTableModel dtm = new MondrianDrillThroughTableModel();
dtm.setSql(sql);
String connectString = getConnection().getConnectString();
PropertyList connectInfo = mondrian.olap.Util.parseConnectString(connectString);
String jdbcUrl = connectInfo.get(RolapConnectionProperties.Jdbc);
String jdbcUser = connectInfo.get(RolapConnectionProperties.JdbcUser);
String jdbcPassword = connectInfo.get(RolapConnectionProperties.JdbcPassword);
String dataSourceName = connectInfo.get(RolapConnectionProperties.DataSource);
dtm.setJdbcUrl(jdbcUrl);
dtm.setJdbcUser(jdbcUser);
dtm.setJdbcPassword(jdbcPassword);
dtm.setDataSourceName(dataSourceName);
return dtm;
}
/**
* gets the mondrian connection
* @return
*/
public mondrian.olap.Connection getConnection() {
MondrianModel model = (MondrianModel) getModel();
return model.getConnection();
}
public boolean isExtendedContext() {
return extendedContext;
}
public void setExtendedContext(boolean extendedContext) {
this.extendedContext = extendedContext;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -