Package org.shiftone.jrat.ui.viewer.tsv

Source Code of org.shiftone.jrat.ui.viewer.tsv.SimpleTsvOutputViewBuilder

package org.shiftone.jrat.ui.viewer.tsv;

import org.shiftone.jrat.core.spi.ui.OutputViewBuilder;
import org.shiftone.jrat.core.spi.ui.ViewContext;
import org.shiftone.jrat.ui.util.PercentTableCellRenderer;
import org.shiftone.jrat.util.Percent;
import org.shiftone.jrat.util.io.IOUtil;
import org.shiftone.jrat.util.log.Logger;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.JTableHeader;
import java.io.InputStream;

/**
* @author $Author: jeffdrost $
* @version $Revision: 1.5 $
*/
public class SimpleTsvOutputViewBuilder implements OutputViewBuilder {

  private static final Logger LOG = Logger.getLogger(SimpleTsvOutputViewBuilder.class);

  public void buildView(ViewContext context) throws Exception {

    InputStream inputStream = null;
    TsvTableModel model = new TsvTableModel();
    try {
      inputStream = context.openInputStream();
      model.load(inputStream);
    } finally {
      IOUtil.close(inputStream);
    }
    JTable table = new JTable(model);
    JScrollPane scrollPane = new JScrollPane(table);
    JTableHeader header = table.getTableHeader();
    table.setDefaultRenderer(Percent.class, new PercentTableCellRenderer());
    table.setDefaultRenderer(Integer.class, new PercentTableCellRenderer());
    table.setDefaultRenderer(Long.class, new PercentTableCellRenderer());
    table.setDefaultRenderer(Double.class, new PercentTableCellRenderer());
    table.setDefaultRenderer(Float.class, new PercentTableCellRenderer());
    //
    table.setColumnSelectionAllowed(false);
    header.addMouseListener(new TsvMouseAdapter(table));
    context.setComponent(scrollPane);
  }
}
TOP

Related Classes of org.shiftone.jrat.ui.viewer.tsv.SimpleTsvOutputViewBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.