// Copyright (c) 2015 D1SM.net

package net.fs.client;

import java.awt.Color;
import java.awt.Component;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;


import net.miginfocom.swing.MigLayout;
import sun.swing.DefaultLookup;

public class MapRuleRender extends JLabel implements TableCellRenderer {

	private static final long serialVersionUID = -3260748459008436510L;

	JPanel pleft,pright,p1;

	JLabel label_wan_address;
	JLabel label2;

	MapRule rule;

	{
		setOpaque(true);
		setLayout(new MigLayout("insets 8 10 0 0"));
		label_wan_address=new JLabel();
		add(label_wan_address,"width :500:,wrap");
		label_wan_address.setBackground(new Color(0f,0f,0f,0f));
		label_wan_address.setOpaque(true);
		label2=new JLabel();
		add(label2,"width :500:,wrap");
		label2.setBackground(new Color(0f,0f,0f,0f));
		label2.setOpaque(true);
	}


	void update(MapRule rule,JTable table,int row){
		this.rule=rule;
		int rowHeight=50;
		int h=table.getRowHeight(row);
		if(h!=rowHeight){
			table.setRowHeight(row, rowHeight);
		}
		String name=rule.getName();
		if(name==null){
			name="无";
		}else if(name.trim().equals("")){
			name="无";
		}
		label_wan_address.setText("名称: "+rule.name+"  加速端口: "+rule.dst_port);
		label2.setText("本地端口: "+rule.getListen_port());

	}

	@Override
	public Component getTableCellRendererComponent(JTable table, Object value,
			boolean isSelected, boolean hasFocus, int row, int column) {
		Color fg = null;
		Color bg = null;
		JTable.DropLocation dropLocation = table.getDropLocation();
		if (dropLocation != null
				&& !dropLocation.isInsertRow()
				&& !dropLocation.isInsertColumn()
				&& dropLocation.getRow() == row
				&& dropLocation.getColumn() == column) {

			fg = DefaultLookup.getColor(this, ui, "Table.dropCellForeground");
			bg = DefaultLookup.getColor(this, ui, "Table.dropCellBackground");
			isSelected = true;
		}
		if (isSelected) {
			setBackground(DefaultLookup.getColor(this, ui, "Table.dropCellBackground"));
		} else {
			setBackground( DefaultLookup.getColor(this, ui, "Table.alternateRowColor"));
		}
		MapRule rule=(MapRule)value;
		update(rule,table,row);
		return this;
	}

}