package com.lgnortel.r3.r3equipment.r3l3;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import com.lgnortel.lib.print.Preview;
import com.lgnortel.lib.print.PrintUtilities;
import com.lgnortel.lib.table.CommonTableModel;
import com.lgnortel.lib.table.HeaderButtonRenderer;
import com.lgnortel.lib.table.SortFilterModel;
import com.lgnortel.lib.view.EmsSwingSet;
import com.lgnortel.network.networkview.ErrorInspect;
import com.lgnortel.network.networkview.HelpView;
import com.lgnortel.network.networkview.MessagePanel;
import com.lgnortel.network.networkview.User;
import com.lgnortel.platform.db.DBDataDesc;
import com.lgnortel.platform.model.LabelMenuMgr;
import com.lgnortel.platform.model.Language;
import com.lgnortel.r3.r3equipment.r3shelf.ShelfViewController;
import com.lgnortel.r3.r3rmi.NeL3IF;
import com.lgnortel.rmi.common.ClientManager;
import com.lgnortel.rmi.common.DBSupporter;
import com.lgnortel.rmi.common.EmsCode;
/**
* Copyright (c) 2008 LG-Nortel, Inc. All Rights Reserved.
*
* CONFIDENTIALITY AND LIMITED USE: This software, including any software of <br>
* third parties embodied herein, contains code, information, data and concepts <br>
* which are confidential and/or proprietary to LG-Nortel and such third <br>
* parties. This software is licensed for use solely in accordance with the <br>
* terms and conditions of the applicable license agreement with LG-Nortel or <br>
* its authorized distributor, and not for any other use or purpose. No <br>
* redistribution of this software by any party is permitted. <br>
*
* Title: CmdPimNeighborView.java<br>
* Description: PIM Neighbor in the PIM-SM function of PIM-SM submenu in Multicast Menu in Equipment View <br>
* Copyright: Copyright(c) 2008 LG-NORTEL ALL Rights Reserved<br>
* Company: LG-Nortel<br>
*
* @author kim sang hee
* @version 0.1
* @created 2009. 1. 22.
* @modified 2009. 1. 22.
* @product EFA4.0 EMS
* @sw_block client block
*/
public class CmdPimNeighborView extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private JPanel pnlMain = null;
private JPanel pnlBtn = null;
MessagePanel pnlResult = null;
private JButton btnGet = null;
private JButton btnHelp = null;
private JButton btnPrint = null;
// table
private JScrollPane spnPim = null;
private JTable tblPim = new JTable();
private SortFilterModel modelPim = null;
HelpView helpView = null;
int viewId;
int neId;
int shelfId;
LabelMenuMgr labelMenuMgr = LabelMenuMgr.getInstance();
DBSupporter dbSupporter = DBSupporter.getInstance();
private ImageIcon btnViewImg = new ImageIcon(getClass().getClassLoader().getResource("image/btnView.gif"));
private ImageIcon btnViewImgOver = new ImageIcon(getClass().getClassLoader().getResource("image/btnViewOver.gif"));
private ImageIcon btnPrintImg = new ImageIcon(getClass().getClassLoader().getResource("image/btnPrint.gif"));
private ImageIcon btnPrintImgOver = new ImageIcon(getClass().getClassLoader().getResource("image/btnPrintOver.gif"));
private ImageIcon btnViewEngImg = new ImageIcon(getClass().getClassLoader().getResource("image/btnViewEng.gif"));
private ImageIcon btnViewEngImgOver = new ImageIcon(getClass().getClassLoader().getResource("image/btnViewEngOver.gif"));
private ImageIcon btnPrintEngImg = new ImageIcon(getClass().getClassLoader().getResource("image/btnPrintEng.gif"));
private ImageIcon btnPrintEngImgOver = new ImageIcon(getClass().getClassLoader().getResource("image/btnPrintEngOver.gif"));
/**
* the constructor.
*
* @param neId
* the node id.
* @param shelfId
* the shelf id.
*/
public CmdPimNeighborView(int neId, int shelfId) {
try {
this.neId = neId;
this.shelfId = shelfId;
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* set the view id.
*
* @param lViewId
* the view id.
*/
public void setViewId(int lViewId) {
this.viewId = lViewId;
}
/**
* get the view id.
*
* @return a int value for view id.
*/
public int getViewId() {
return viewId;
}
private void jbInit() throws Exception {
btnGet = new JButton();
btnGet.setFont(new java.awt.Font("Dialog", 0, 12));
btnGet.setPreferredSize(new Dimension(80, 25));
btnGet.setMinimumSize(new Dimension(80, 25));
btnGet.setMaximumSize(new Dimension(80, 25));
btnGet.addActionListener(eventHandler);
if (Language.selectedLanguage == Language.KOREAN) {
btnGet.setIcon(btnViewImg);
btnGet.setRolloverIcon(btnViewImgOver);
} else {
btnGet.setIcon(btnViewEngImg);
btnGet.setRolloverIcon(btnViewEngImgOver);
}
ImageIcon helpIcon = new ImageIcon(getClass().getClassLoader().getResource("image/helpButton.gif"));
btnHelp = new JButton(null, helpIcon);
btnHelp.setFont(new java.awt.Font("Dialog", 0, 12));
btnHelp.setPreferredSize(new Dimension(25, 25));
btnHelp.setMinimumSize(new Dimension(25, 25));
btnHelp.setMaximumSize(new Dimension(25, 25));
btnHelp.addActionListener(eventHandler);
btnPrint = new JButton();
btnPrint.setFont(new java.awt.Font("Dialog", 0, 12));
btnPrint.setPreferredSize(new Dimension(80, 25));
btnPrint.setMinimumSize(new Dimension(80, 25));
btnPrint.setMaximumSize(new Dimension(80, 25));
btnPrint.addActionListener(eventHandler);
if (Language.selectedLanguage == Language.KOREAN) {
btnPrint.setIcon(btnPrintImg);
btnPrint.setRolloverIcon(btnPrintImgOver);
} else {
btnPrint.setIcon(btnPrintEngImg);
btnPrint.setRolloverIcon(btnPrintEngImgOver);
}
spnPim = new JScrollPane();
init_tblPim();
spnPim.setViewportView(tblPim);
pnlResult = new MessagePanel(this);
pnlResult.setBorder(null);
pnlBtn = new JPanel();
pnlBtn.setLayout(new GridBagLayout());
pnlBtn.setBorder(EmsSwingSet.createMatteBorder(labelMenuMgr.getLabel("RESULT")));
pnlBtn.add(pnlResult, new GridBagConstraints(1, 1, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
pnlBtn.add(btnHelp, new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
pnlMain = new JPanel();
pnlMain.setLayout(new GridBagLayout());
pnlMain.setBorder(EmsSwingSet.createMatteBorder(labelMenuMgr.getMenu("PIM_NEIGHBOR") + " " + labelMenuMgr.getLabel("VIEW")));
pnlMain.add(spnPim, new GridBagConstraints(1, 1, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
pnlMain.add(btnGet, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
pnlMain.add(btnPrint, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
this.setLayout(new GridBagLayout());
this.add(pnlMain, new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
this.add(pnlBtn, new GridBagConstraints(1, 2, 1, 1, 1.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(1, 1, 1, 1), 0, 0));
initialize();
}
/**
* initialize the table.
*/
public void init_tblPim() {
Vector<Object> columnInfo = new Vector<Object>();
columnInfo.addElement("Neighbor Address");
columnInfo.addElement("Interface Name");
columnInfo.addElement("UpTime / Expires");
columnInfo.addElement("Version");
columnInfo.addElement("DR Priority / Mode");
CommonTableModel commonTableModel = new CommonTableModel(columnInfo);
modelPim = new SortFilterModel(commonTableModel);
HeaderButtonRenderer headerButtonRenderer = new HeaderButtonRenderer();
headerButtonRenderer.setFont(new java.awt.Font("Dialog", 0, 12));
modelPim.addMouseListener(tblPim, headerButtonRenderer);
tblPim.setModel(modelPim);
tblPim.setBackground(Color.white);
// tblPim.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tblPim.setSelectionBackground(new Color(204, 204, 255));
tblPim.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 1) {
int s = getSelectPim();
setPimInfo(s);
}
};
});
tblPim.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent ek) {
if (ek.getKeyCode() == KeyEvent.VK_UP || ek.getKeyCode() == KeyEvent.VK_DOWN || ek.getKeyCode() == KeyEvent.VK_KP_UP || ek.getKeyCode() == KeyEvent.VK_KP_DOWN || ek.getKeyCode() == KeyEvent.VK_PAGE_UP || ek.getKeyCode() == KeyEvent.VK_PAGE_DOWN) {
int s = getSelectPim();
setPimInfo(s);
}
};
});
DefaultTableCellRenderer renderer_center = new DefaultTableCellRenderer();
renderer_center.setHorizontalAlignment(SwingConstants.CENTER);
DefaultTableCellRenderer renderer_left = new DefaultTableCellRenderer();
renderer_left.setHorizontalAlignment(SwingConstants.LEFT);
int columnSize = modelPim.getColumnCount();
for (int i = 0; i < columnSize; i++) {
TableColumn tableColumn = tblPim.getColumnModel().getColumn(i);
tableColumn.setHeaderRenderer(headerButtonRenderer);
tableColumn.setCellRenderer(renderer_center);
}
tblPim.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
}
/**
* Request Information
*/
public void getNeighbor() {
ClientManager clientMgr = ClientManager.getInstance();
User user = User.getInstance();
NeL3IF.RtrvPimNeighborIF[] data = new NeL3IF.RtrvPimNeighborIF[1];
data[0] = new NeL3IF.RtrvPimNeighborIF();
data[0].nodeId = neId;
data[0].shelfId = shelfId;
data[0].slotId = DBDataDesc.SLOT_SWU;
data[0].sysType = DBDataDesc.SYSTYPE_OLT;
String cmdStr = "";
clientMgr.cmdRequest(getViewId(), user.getUserId(), neId, data[0].shelfId, EmsCode.CMD_RTRV_PIM_NEIGHBOR, data, cmdStr);
btnGet.setEnabled(false);
}
/**
* the response method.
*
* @param viewId
* the view id.
* @param userId
* the user id.
* @param nodeId
* the node id.
* @param cmdCode
* the command code.
* @param data
* the Object array for the data.
* @param result
* the int value about the result.
* @return the true if call the method.
*/
public boolean cmdResponse(int viewId, int userId, int nodeId, int cmdCode, Object[] data, int result) {
if (cmdCode == EmsCode.CMD_RTRV_PIM_NEIGHBOR) {
Vector<Vector<Object>> _vPimData = new Vector<Vector<Object>>();
modelPim.setData(_vPimData);
modelPim.fireTableDataChanged();
pnlResult.updateMessage(ErrorInspect.getErrorMessage(result), data);
btnGet.setEnabled(true);
} else {
pnlResult.updateMessage(ErrorInspect.getErrorMessage(result));
}
if (result == ErrorInspect.SUCCESS || result == ErrorInspect.NO_DATA) {
if (cmdCode == EmsCode.CMD_RTRV_PIM_NEIGHBOR) {
refreshPim((NeL3IF.RtrvPimNeighborIF[]) data, result);
}
}
return true;
}
/**
* Refresh Table
*
* @param data
* :RtrvPimNeighborIF data
* @param result
* : the int value about the result.
*/
private void refreshPim(NeL3IF.RtrvPimNeighborIF[] data, int result) {
if (data == null || result == ErrorInspect.NO_DATA) {
} else {
Vector<Vector<Object>> vPimData = new Vector<Vector<Object>>();
for (int i = 0; i < data.length; i++) {
Vector<Object> oneRow = new Vector<Object>();
oneRow.addElement(data[i].neighborAddr); // 0
oneRow.addElement(data[i].ifName); // 1
oneRow.addElement(data[i].uptimeExpires); // 4
oneRow.addElement(data[i].ver); // 2
oneRow.addElement(data[i].drPriMode); // 3
vPimData.addElement(oneRow);
}
modelPim.setData(vPimData);
modelPim.fireTableDataChanged();
}
}
/**
* get Table Row
*
* @return table Row value
*/
public int getSelectPim() {
int nPimRow = tblPim.getSelectedRow();
return nPimRow;
}
/**
* set Detail Information
*
* @param c
* :table row vlaue
*/
public void setPimInfo(int c) {
if (c < 0) {
return;
}
}
private void help() {
helpView = HelpView.getInstance(ShelfViewController.DIALOG_PIM_NEIGHBOR);
helpView.setVisible(true);
}
private void print() {
new Preview(new PrintUtilities(tblPim), "PIM_NEIGHBOR_VIEW");
}
IvjEventHandler eventHandler = new IvjEventHandler();
/**
*
* Title: CmdPimNeighborView.java<br>
* Description: Evnet Handler Class <br>
* Copyright: Copyright(c) 2008 LG-NORTEL ALL Rights Reserved<br>
* Company: LG-Nortel<br>
*
* @author kim sang hee
* @version 0.1
* @created 2009. 1. 22.
* @modified 2009. 1. 22.
* @product EFA4.0 EMS
* @sw_block client block
*/
class IvjEventHandler implements java.awt.event.ActionListener {
public void actionPerformed(ActionEvent e) {
java.lang.Object src = e.getSource();
if (src == btnHelp) {
help();
} else if (src == btnGet) {
getNeighbor();
} else if (src == btnPrint) {
print();
}
}
}
private void initialize() {
try {
setLocation(0, 0);
} catch (java.lang.Throwable ivjExc) {
handleException(ivjExc);
}
}
private void handleException(java.lang.Throwable exception) {
System.out.println("--------------------- Exception ---------------------");
}
}
|