private void updateTabBar(Vector vtThread) {
    pnlThread.removeAll();
    for (int iThreadIndex = 0; iThreadIndex < vtThread.size(); iThreadIndex++) {
      try {
        Vector vtThreadInfo = (Vector) vtThread.elementAt(iThreadIndex);
        PanelThreadMonitor mntTemp = new PanelThreadMonitor(channel);

        String strThreadID = (String) vtThreadInfo.elementAt(0);
        String strThreadName = (String) vtThreadInfo.elementAt(1);
        int iThreadStatus = Integer.parseInt((String) vtThreadInfo.elementAt(2));
        mntTemp.setThreadID(strThreadID);
        mntTemp.setThreadName(strThreadName);
        mntTemp.setThreadStatus(iThreadStatus);
        showResult(mntTemp.txtMonitor, (String) vtThreadInfo.elementAt(3));
        mntTemp.addPropertyChangeListener(this);

        pnlThread.add(strThreadName, mntTemp);
        mntTemp.updateStatus();
      } catch (Exception e) {
        e.printStackTrace();
        MessageBox.showMessageDialog(this, e, Global.APP_NAME, MessageBox.ERROR_MESSAGE);
      }
    }
    Skin.applySkin(this);
  }
 public void updateStatus(String strThreadID, String status) {
   PanelThreadMonitor pnlThrMonitor = getPanelThreadMonitor(strThreadID);
   int iStatus = Integer.parseInt(status);
   if (pnlThrMonitor != null) {
     pnlThrMonitor.setThreadStatus(iStatus);
     pnlThrMonitor.updateStatus();
   }
 }
  public void loadThread(String threadID, String threadName, String threadStatus) {
    try {
      PanelThreadMonitor mntTemp = new PanelThreadMonitor(channel);
      int iThreadStatus = Integer.parseInt(threadStatus);
      mntTemp.setThreadID(threadID);
      mntTemp.setThreadName(threadName);
      mntTemp.setThreadStatus(iThreadStatus);
      mntTemp.addPropertyChangeListener(this);

      pnlThread.add(threadName, mntTemp);
      mntTemp.updateStatus();
      Skin.applySkin(mntTemp);
    } catch (Exception e) {
      e.printStackTrace();
      MessageBox.showMessageDialog(this, e, Global.APP_NAME, MessageBox.ERROR_MESSAGE);
    }
  }