NodeMoveView.java :  » App » learnandroid » com » lgnortel » network » networkview » Android Open Source

Android Open Source » App » learnandroid 
learnandroid » com » lgnortel » network » networkview » NodeMoveView.java
package com.lgnortel.network.networkview;

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.awt.event.WindowEvent;
import java.util.Enumeration;
import java.util.Vector;
import java.util.logging.Logger;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
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.logger.LoggerUtil;
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.platform.db.DBDataDesc;
import com.lgnortel.platform.db.DBManager;
import com.lgnortel.platform.model.LabelMenuMgr;
import com.lgnortel.platform.model.NetworkElement;
import com.lgnortel.platform.model.NetworkMgr;
import com.lgnortel.r3.r3equipment.r3shelf.ShelfViewController;
import com.lgnortel.r4.r4equipment.common.R4ApplyButton;
import com.lgnortel.r4.r4equipment.common.R4HelpButton;
import com.lgnortel.r4.r4equipment.common.R4PrintButton;
import com.lgnortel.r4.r4equipment.common.R4ViewButton;
import com.lgnortel.rmi.common.ClientManager;
import com.lgnortel.rmi.common.CommonIF;
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: CommonTableCellRenderer.java<br>
 * Description: <br>
 * Copyright: Copyright(c) 2008 LG-NORTEL ALL Rights Reserved<br>
 * Company: LG-Nortel<br>
 * 
 * Title: NodeMoveView.java<br>
 * Description: <br>
 * Copyright: Copyright(c) 2008 LG-NORTEL ALL Rights Reserved<br>
 * Company: LG-Nortel<br>
 * 
 * @author JungGu Lee
 * @version 0.1
 * @created 2009. 1. 21.
 * @modified 2009. 1. 21.
 * @product EFA R4.0 EMS
 * @sw_block
 */

public class NodeMoveView extends JPanel {

  /**
   * 
   */
  private static final long serialVersionUID = 1L;

  // Log4J
  private Logger logger = LoggerUtil.getInstance().getLogger(this.getClass().getName());

  private JPanel pnlMain = null;
  private JPanel pnlNe = null;

  private JRadioButton rbnNe = null;
  private JRadioButton rbnSubnet = null;

  private JComboBox cbSubnet = null;

  private ButtonGroup grpNe = null;

  private JButton btnGet = null;
  private JButton btnSet = null;
  private JButton btnPrint = null;
  private JButton btnClose = null;
  private JButton btnHelp = null;

  // table
  private JScrollPane spnNe = null;
  private JTable tblNe = new JTable();
  private SortFilterModel modelNe = null;

  HelpView helpView = null;
  int viewId;

  LabelMenuMgr labelMenuMgr;
  NetworkMgr networkMgr;


  /**
   * Constructor of this class
   */
  public NodeMoveView(int _viewId) {
    viewId = _viewId;
    try {
      labelMenuMgr = LabelMenuMgr.getInstance();
      networkMgr = NetworkMgr.getInstance();

      jbInit();
      getSubnetList();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * nothing to do.
   */
  public void refresh() {
  }

  /**
   * set ViewId
   * 
   * @param lViewId
   */
  public void setViewId(int lViewId) {
    this.viewId = lViewId;
  }

  /**
   * get ViewId
   * 
   * @return
   */
  public int getViewId() {
    return viewId;
  }

  /**
   * Initialization of GUI Component
   * 
   * @throws Exception
   */
  private void jbInit() throws Exception {

    rbnNe = new JRadioButton("ALL NODE", true);
    rbnSubnet = new JRadioButton("SUBNET");

    cbSubnet = new JComboBox();
    cbSubnet.setEditable(false);

    grpNe = new ButtonGroup();
    grpNe.add(rbnNe);
    grpNe.add(rbnSubnet);

    btnSet = new R4ApplyButton();
    btnSet.addActionListener(eventHandler);

    btnGet = new R4ViewButton();
    btnGet.addActionListener(eventHandler);

    User user = User.getInstance();
    if (user.getUserGrp() == DBDataDesc.USER_MAINTENANCE || user.getUserGrp() == DBDataDesc.USER_MONITOR) {
      btnSet.setEnabled(false);
    }

    btnPrint = new R4PrintButton();
    btnPrint.addActionListener(eventHandler);

    btnClose = new JButton(labelMenuMgr.getLabel("CLOSE"));
    btnClose.setFont(new java.awt.Font("Dialog", 0, 12));
    btnClose.setPreferredSize(new Dimension(80, 25));
    btnClose.setMinimumSize(new Dimension(80, 25));
    btnClose.setMaximumSize(new Dimension(80, 25));
    btnClose.addActionListener(eventHandler);

    btnHelp = new R4HelpButton();
    btnHelp.addActionListener(eventHandler);

    spnNe = new JScrollPane();
    init_tblNe();
    spnNe.setViewportView(tblNe);

    pnlNe = new JPanel();
    pnlNe.setLayout(new GridBagLayout());
    pnlNe.setBorder(EmsSwingSet.createMatteBorder("NE Choice"));
    pnlNe.add(btnGet, new GridBagConstraints(1, 1, 1, 1, 7.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));

    pnlMain = new JPanel();
    pnlMain.setLayout(new GridBagLayout());
    pnlMain.setBorder(EmsSwingSet.createMatteBorder(labelMenuMgr.getLabel("RESULT")));
    pnlMain.add(spnNe, new GridBagConstraints(1, 1, 4, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
    pnlMain.add(btnSet, 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));
    pnlMain.add(btnHelp, new GridBagConstraints(4, 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(pnlNe, new GridBagConstraints(2, 1, 1, 1, 0.3, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
    this.add(pnlMain, new GridBagConstraints(1, 2, 2, 1, 1.0, 1.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));

    initialize();
  }

  /**
   * Initialization of Table set the title and renderer on the cell
   */
  public void init_tblNe() {
    Vector<Object> columnInfo = new Vector<Object>();
    columnInfo.addElement(labelMenuMgr.getLabel("COMMAND_CHOICE"));
    columnInfo.addElement(labelMenuMgr.getLabel("TID"));
    columnInfo.addElement(labelMenuMgr.getLabel("X"));
    columnInfo.addElement(labelMenuMgr.getLabel("Y"));
    columnInfo.addElement(labelMenuMgr.getLabel("RESULT"));

    CommonTableModel commonTableModel = new CommonTableModel(columnInfo);
    modelNe = new SortFilterModel(commonTableModel);

    HeaderButtonRenderer headerButtonRenderer = new HeaderButtonRenderer();
    headerButtonRenderer.setFont(new java.awt.Font("Dialog", 0, 12));

    modelNe.addMouseListener(tblNe, headerButtonRenderer);
    modelNe.setCellEditable(0);

    tblNe.setModel(modelNe);
    tblNe.setBackground(Color.white);

    tblNe.setSelectionBackground(new Color(204, 204, 255));

    tblNe.addMouseListener(new MouseAdapter() {
      public void mousePressed(MouseEvent e) {
        if (e.getClickCount() == 1) {
          int s = getSelectNe();
          setNeDetailInfo(s);
        }
        if (e.getModifiers() == MouseEvent.BUTTON3_MASK) {
        }
      };
    });

    tblNe.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 = getSelectNe();
          setNeDetailInfo(s);
        }
      };
    });

    DefaultTableCellRenderer renderer_center = new DefaultTableCellRenderer();
    renderer_center.setHorizontalAlignment(SwingConstants.CENTER);

    DefaultTableCellRenderer renderer_left = new DefaultTableCellRenderer();
    renderer_left.setHorizontalAlignment(SwingConstants.LEFT);

    int columnSize = modelNe.getColumnCount();
    for (int i = 0; i < columnSize; i++) {
      TableColumn tableColumn = tblNe.getColumnModel().getColumn(i);
      tableColumn.setHeaderRenderer(headerButtonRenderer);

      tableColumn.setCellRenderer(renderer_center);

      if (i == 0) {
        CheckCellRecoveryRenderer checkCell = new CheckCellRecoveryRenderer();
        checkCell.setHorizontalAlignment(SwingConstants.CENTER);
        tableColumn.setCellRenderer(checkCell);
        tableColumn.setPreferredWidth(100);
      } else if (i == 1) {
        tableColumn.setPreferredWidth(100);
      } else if (i == 2) {
        tableColumn.setPreferredWidth(100);
      } else if (i == 3) {
        tableColumn.setPreferredWidth(100);
      } else {
        tableColumn.setPreferredWidth(280);
      }
    }

    tblNe.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
  }

  /**
   * get subnet list
   */
  private void getSubnetList() {

    Enumeration<NetworkElement> e = networkMgr.getSubnet().elements();
    while (e.hasMoreElements()) {
      NetworkElement subnet = (NetworkElement) e.nextElement();
      cbSubnet.addItem(subnet.getNodeName());
    }
  }

  /**
   * command response from server
   * 
   * @param viewId
   * @param userId
   * @param nodeId
   * @param cmdCode
   * @param data
   * @param result
   * @return
   */
  public boolean cmdResponse(int viewId, int userId, int nodeId, int cmdCode, Object[] data, int result) {

    DBManager dbMgr = DBManager.getInstance();

    String nodeName = dbMgr.getNodeName(nodeId);

    if (nodeName != null) {
      refreshPanel(nodeName, result);
    } else {
      logger.warning("nodeName is null");
    }

    return true;
  }

  /**
   * refresh panel
   * 
   * @param rspNodeName
   * @param result
   */
  public void refreshPanel(String rspNodeName, int result) {

    if (rspNodeName == null)
      return;

    for (int rowCount = 0; rowCount < modelNe.getRowCount(); rowCount++) {
      String nodeName = (String) modelNe.getValueAt(rowCount, 1);

      if (rspNodeName.equals(nodeName)) {
        int colCount = 4; // result column
        modelNe.setValueAt((Object) ErrorInspect.getErrorMessage(result), rowCount, colCount);
        modelNe.fireTableDataChanged();

        if (result == ErrorInspect.SUCCESS) {
          NetworkElement currentNode = networkMgr.getNodeNetworkElement(nodeName);
          currentNode.setMovedNode(false);
        }
      }
    }
  }

  /**
   * get select row
   * 
   * @return
   */
  public int getSelectNe() {
    int nNeRow = tblNe.getSelectedRow();
    return nNeRow;
  }

  /**
   * set provision data using retrieve data
   * 
   * @param c
   */
  public void setNeDetailInfo(int ne) {
    if (ne < 0) {
      return;
    }
  }

  /**
   * event handler action with event occurred location.
   */
  IvjEventHandler eventHandler = new IvjEventHandler();

  class IvjEventHandler implements java.awt.event.ActionListener {
    public void actionPerformed(ActionEvent e) {
      java.lang.Object src = e.getSource();
      if (src == btnSet) {
        requestCommand();
      }
      if (src == btnPrint) {
        new Preview(new PrintUtilities(tblNe), "NODE_MOVE_RESULT");
      } else if (src == btnClose) {
        close();
      } else if (src == btnHelp) {
        help();
      } else if (src == btnGet) {
        refreshMovedNe();
      }
    }
  }

  /**
   * when window closing event is occured call the close operation to dispose
   */
  protected void processWindowEvent(WindowEvent e) {
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      close();
    }
  }

  /**
   * window size & title initialization
   */
  private void initialize() {
    try {
      setLocation(0, 0);
    } catch (java.lang.Throwable ivjExc) {
      handleException(ivjExc);
    }
  }

  /**
   * refresh moved data
   */
  public void refreshMovedNe() {
    btnGet.setEnabled(false);

    Vector<Vector<Object>> _vMovedNeData = new Vector<Vector<Object>>();
    modelNe.setData(_vMovedNeData);
    modelNe.fireTableDataChanged();

    NetworkMgr networkMgr = NetworkMgr.getInstance();

    NetworkElement[] movedElement = networkMgr.getMovedNetworkElement();

    if (movedElement == null) {
      Object[] options = new Object[1];
      options[0] = new String(labelMenuMgr.getLabel("CONFIRM"));

      JOptionPane.showOptionDialog(this, "NO NODE TO MOVE", "CMD_MOVE_NODE", JOptionPane.OK_OPTION, JOptionPane.ERROR_MESSAGE, null, options, options[0]);
    } else {
      Vector<Vector<Object>> vMovedNeData = new Vector<Vector<Object>>();

      for (int i = 0; i < movedElement.length; i++) {

        Vector<Object> oneRow = new Vector<Object>();

        oneRow.addElement(new Boolean(true)); // 0
        oneRow.addElement(new String(movedElement[i].getNodeName())); // 1

        Integer xLocation = new Integer(movedElement[i].getX());
        oneRow.addElement(new String(xLocation.toString())); // 2

        Integer yLocation = new Integer(movedElement[i].getY());
        oneRow.addElement(new String(yLocation.toString())); // 3

        oneRow.addElement(new String("")); // 4
        
        oneRow.addElement(new Integer(movedElement[i].getNodeId()));  // 5

        vMovedNeData.addElement(oneRow);
      }
      modelNe.setData(vMovedNeData);
      modelNe.fireTableDataChanged();
    }
    btnGet.setEnabled(true);
  }

  /**
   * command request to setting the data
   */
  private void requestCommand() {

    ClientManager clientMgr = ClientManager.getInstance();
    User user = User.getInstance();

    for (int rowCnt = 0; rowCnt < modelNe.getRowCount(); rowCnt++) {

      Boolean checked = (Boolean) modelNe.getValueAt(rowCnt, 0);
      //String nodeName = (String) modelNe.getValueAt(rowCnt, 1);
      String xLocation = (String) modelNe.getValueAt(rowCnt, 2);
      String yLocation = (String) modelNe.getValueAt(rowCnt, 3);
      int nodeId = ((Integer)modelNe.getValueAt(rowCnt,5)).intValue();

      if (checked.booleanValue()) {
        NetworkElement networkElement = networkMgr.getNodeNetworkElement(nodeId);

        CommonIF.NodeIF[] data = new CommonIF.NodeIF[1];
        data[0] = new CommonIF.NodeIF();

        data[0].nodeName = networkElement.getNodeName();
        data[0].nodeId = networkElement.getNodeId();
        data[0].nodeType = networkElement.getNodeType();
        data[0].xStart = Integer.parseInt(xLocation);
        data[0].yStart = Integer.parseInt(yLocation);
        data[0].eastNodeId = 0;
        data[0].westNodeId = 0;
        data[0].hubNodeId = 0;
        data[0].parentNodeId = networkElement.getParentNodeId();
        data[0].systemType = networkElement.getSystemType();
        data[0].oprMode = 0;
        data[0].address = networkElement.getAddress();
        data[0].tcpIpSelected = networkElement.getTcpIpSelected();
        data[0].gateway = networkElement.getGateway();
        data[0].map = networkElement.getMap();
        data[0].description = networkElement.getDescription();

        String cmdStr = new String("");
        cmdStr = "MOD-NE:" + data[0].nodeName + ":" + "X=" + data[0].xStart + "Y=" + data[0].yStart;

        int shelfId = 0;
        clientMgr.cmdRequest(getViewId(), user.getUserId(), data[0].nodeId, shelfId, EmsCode.CMD_MOVE_NODE, data, cmdStr);

      } else {
        logger.warning(" not checked nodeId = " + nodeId);
      }
    }
  }

  /**
   * nothing to do..
   */
  private void close() {
    /*
     * MainMenuBar mainMenuBar = MainMenuBar.getInstance(); mainMenuBar.removeCommand(viewId); dispose();
     */
  }

  private void handleException(java.lang.Throwable exception) {
    System.out.println("--------------------- Exception ---------------------");
  }

  /**
   * Help View dialogue is opened which is related to help dialog number
   */
  private void help() {

    helpView = HelpView.getInstance(ShelfViewController.DIALOG_HELP_NODELOCATION);
    helpView.setVisible(true);
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.