package
spasvo
.
tcder
.
gui
.
dialog
.
impl;
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import spasvo.tcder.uitl.DialogUtil;
public class CombineConfigDialog extends JDialog {
private static final long serialVersionUID = 1L;
private JTable leftColumsTable;
private JTable rightColumnsTable;
private static CombineConfigDialog instance = null;
/** 关系Integer [源:唯一 column,目标:不唯一 row ] a(目标)=b(源) */
private List < Integer []> relation = new ArrayList < Integer []>();
/** 需要显示的内容 Object[]{content,TCDImageItem.timeId,userDataBean.timeId} */
private List < Object []> content = null;
public static synchronized CombineConfigDialog getInstance() {
if ( instance == null) {
instance = new CombineConfigDialog();
}
return instance;
}
/**
* 设置需要显示的内容 Object[]{content,TCDImageItem.timeId,userDataBean.timeId}
*
* @param data
* @param rela
* 关系
*/
public void updateContent( List < Object []> data , List < Integer []> rela) {
this . content = data;
this . relation = rela;
LeftColumnsTableModel leftModel = ( LeftColumnsTableModel) leftColumsTable
. getModel();
leftModel . updataContent( content);
RightColumnsTableModel rightModel = ( RightColumnsTableModel) rightColumnsTable
. getModel();
rightModel . updataContent( content);
FontMetrics fm = rightColumnsTable . getFontMetrics( rightColumnsTable
. getFont());
for ( int i = 0; i < content . size(); i ++) {
int width = fm . stringWidth( content . get( i )[ 0 ]. toString()) + 10;
rightColumnsTable . getColumnModel (). getColumn( i ). setMaxWidth( width);
rightColumnsTable . getColumnModel (). getColumn( i ). setPreferredWidth(
width);
}
}
private CombineConfigDialog() {
setSize( new Dimens
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import spasvo.tcder.uitl.DialogUtil;
public class CombineConfigDialog extends JDialog {
private static final long serialVersionUID = 1L;
private JTable leftColumsTable;
private JTable rightColumnsTable;
private static CombineConfigDialog instance = null;
/** 关系Integer [源:唯一 column,目标:不唯一 row ] a(目标)=b(源) */
private List < Integer []> relation = new ArrayList < Integer []>();
/** 需要显示的内容 Object[]{content,TCDImageItem.timeId,userDataBean.timeId} */
private List < Object []> content = null;
public static synchronized CombineConfigDialog getInstance() {
if ( instance == null) {
instance = new CombineConfigDialog();
}
return instance;
}
/**
* 设置需要显示的内容 Object[]{content,TCDImageItem.timeId,userDataBean.timeId}
*
* @param data
* @param rela
* 关系
*/
public void updateContent( List < Object []> data , List < Integer []> rela) {
this . content = data;
this . relation = rela;
LeftColumnsTableModel leftModel = ( LeftColumnsTableModel) leftColumsTable
. getModel();
leftModel . updataContent( content);
RightColumnsTableModel rightModel = ( RightColumnsTableModel) rightColumnsTable
. getModel();
rightModel . updataContent( content);
FontMetrics fm = rightColumnsTable . getFontMetrics( rightColumnsTable
. getFont());
for ( int i = 0; i < content . size(); i ++) {
int width = fm . stringWidth( content . get( i )[ 0 ]. toString()) + 10;
rightColumnsTable . getColumnModel (). getColumn( i ). setMaxWidth( width);
rightColumnsTable . getColumnModel (). getColumn( i ). setPreferredWidth(
width);
}
}
private CombineConfigDialog() {
setSize( new Dimens