blob: fcc8f5c458221d1276c904455af55824357aaa62 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.oodt.cas.filemgr.browser.view.panels;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Vector;
import javax.swing.BoxLayout;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.border.CompoundBorder;
import javax.swing.border.LineBorder;
import javax.swing.filechooser.FileFilter;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.oodt.cas.filemgr.browser.controller.TableListener;
import org.apache.oodt.cas.filemgr.browser.view.menus.RightClickMenu;
public class TablePane extends JPanel{
public Vector<Integer> hiddenCols;
public HeaderRow header;
private TableListener listener;
public TablePane(){
listener = new TableListener(this);
hiddenCols = new Vector<Integer>();
setBackground(Color.WHITE);
LineBorder line1 = new LineBorder(Color.WHITE,10);
setBorder(line1);
setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
this.setBlank();
}
public TableListener getListener(){
return listener;
}
public void setBlank(){
this.removeAll();
int numColumns = 10;
int numRows = 20;
header = new HeaderRow(listener,numColumns);
add(header);
for(int i=0;i<numRows;i++){
Row r = new Row(numColumns);
add(r);
}
this.validate();
this.repaint();
}
public void newTable(String[][] data){
this.removeAll();
if(data.length>1){
header = new HeaderRow(listener,data[0].length);
for(int j=0;j<data[0].length;j++){
header.setText(j, data[0][j]);
}
this.add(header);
for(int j=1;j<data.length;j++){
Row r = new Row(data[0].length);
for(int k=0;k<data[0].length;k++){
r.setText(k, data[j][k]);
}
this.add(r);
}
}
this.validate();
this.repaint();
}
public HeaderRow getHeader(){
return header;
}
public void sortRows(int col, String sortType){
int length = this.getComponentCount();
int i,j;
for (i=length; --i >=1;) {
for (j=1; j<i;j++) {
Row jThRow = (Row)this.getComponent(j);
Row iThRow = (Row)this.getComponent(i);
if(sortType.equals("Accending")){
if(jThRow.getText(col).compareTo(iThRow.getText(col))>0){
swapRows(j,j+1);
}
} else {
if(jThRow.getText(col).compareTo(iThRow.getText(col))<0){
swapRows(j,j+1);
}
}
}
}
this.validate();
this.repaint();
}
public void swapRows(int index1, int index2){
Component c1 = this.getComponent(index1);
Component c2 = this.getComponent(index2);
this.add(c1, index2);
this.add(c2, index1);
}
public Row getRow(int num){
Row r = null;
if(num<this.getComponentCount()-1){
r = (Row)this.getComponent(num+1);
}
return r;
}
public void hideColumn(int colNum){
header.hideCol(colNum);
for(int i=1;i<this.getComponentCount();i++){
((Row)this.getComponent(i)).hideCol(colNum);
}
hiddenCols.add(new Integer(colNum));
}
public void unhideColumn(int colNum){
header.unhideCol(colNum);
for(int i=1;i<this.getComponentCount();i++){
((Row)this.getComponent(i)).unhideCol(colNum);
}
hiddenCols.remove(new Integer(colNum));
}
}