⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staticclickablemember.java

📁 OLAP 的客户端代码
💻 JAVA
字号:
package com.tonbeller.jpivot.table.navi;

import javax.servlet.http.HttpSession;

import org.w3c.dom.Element;

import com.tonbeller.jpivot.olap.model.OlapModel;
import com.tonbeller.jpivot.param.ParameterProvider;
import com.tonbeller.jpivot.table.SpanBuilder;
import com.tonbeller.jpivot.table.SpanBuilderDecorator;
import com.tonbeller.jpivot.table.TableComponent;
import com.tonbeller.jpivot.table.span.Span;
import com.tonbeller.wcf.controller.RequestContext;

/**
 * wraps a ClickableMemberSupport into a SpanBuilderDecorator, so the clickable member
 * may be attached statically to the table component. Once attached, the clickable
 * will be available independent of the current query.
 * 
 * @author av
 * @since 15.12.2004
 */
public class StaticClickableMember extends SpanBuilderDecorator {
  class MyClickableMember extends ClickableMemberSupport {
    public MyClickableMember(String uniqueName, String urlPattern, String page,
        ParameterProvider parameterProvider) {
      super(uniqueName, urlPattern, page, parameterProvider);
    }

    protected OlapModel getOlapModel() {
      return table.getOlapModel();
    }
  };

  MyClickableMember clickable;

  public StaticClickableMember(SpanBuilder delegate, String uniqueName, String urlPattern,
      String page, ParameterProvider parameterProvider) {
    super(delegate);
    clickable = new MyClickableMember(uniqueName, urlPattern, page, parameterProvider);
  }

  public void initialize(RequestContext context, TableComponent table) throws Exception {
    super.initialize(context, table);
    table.getDispatcher().addRequestListener(null, null, clickable);
    table.getOlapModel().addModelChangeListener(clickable);
  }

  public void destroy(HttpSession session) throws Exception {
    table.getDispatcher().removeRequestListener(clickable);
    table.getOlapModel().removeModelChangeListener(clickable);
    super.destroy(session);
  }

  public void startBuild(RequestContext context) {
    super.startBuild(context);
    clickable.startRendering(context, table);
  }

  public void stopBuild() {
    clickable.stopRendering();
    super.stopBuild();
  }

  public Element build(Span span, boolean even) {
    Element elem = super.build(span, even);
    clickable.decorate(elem, span.getObject());
    return elem;
  }
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -