public void mouseDragged(MouseEvent e) {
			super.mouseDragged(e);
			
			if (!SwingUtilities.isLeftMouseButton(e)) {
				return;
			}
			if (isDragCancel) {
				recTable.setRowSelectionInterval(pressRowIndex, pressRowIndex);
				return;
			}
			
			Point p = e.getPoint();
			dragRowIndex = recTable.rowAtPoint(p);
			
			// カーソル変更
			Cursor cursor = Cursor.getDefaultCursor();
			if ( !isSortStatus()  && pressRowIndex != dragRowIndex) {
				try {
					cursor = Cursor.getSystemCustomCursor("MoveDrop.32x32");
				} catch (Exception ex) {
					// ドロップ用システムカーソルが存在しない場合、カーソル変更なし
				}
			}
			else {
				try {
					cursor = Cursor.getSystemCustomCursor("MoveNoDrop.32x32");
				} catch (Exception ex) {
					// ドロップ不可用システムカーソルが存在しない場合、カーソル変更なし
				}				
			}
			PackageViewPanel.this.setCursor(cursor);
			
			// ドラッグ中は選択行を移動しない
			recTable.setRowSelectionInterval(pressRowIndex, pressRowIndex);
			recTable.repaint();
		}
	}
	
	/**
	 * テーブルキーリスナークラス
	 * PackageViewPanelのインナークラス
	 */
	class TblKeyListener extends KeyAdapter {
		
		@Override
		public void keyReleased(KeyEvent e) {
			super.keyReleased(e);
			
			// ESCキープレスでドラッグイベント解除
			if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
				isDragCancel = true;
				dragRowIndex = -1;
				PackageViewPanel.this.setCursor(Cursor.getDefaultCursor());
				recTable.repaint();
			}
		}
	}
	
	/**
	 * テーブルレンダラー
	 * PackageViewPanelのインナークラス
	 * オリジナルレンダラー。
	 */
	class TblRenderer extends DefaultTableCellRenderer {
		
		@Override
		public Component getTableCellRendererComponent(JTable table, Object value,
				boolean isSelected, boolean hasFocus, int row, int column) {
			
			super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
			
			if(isSelected) {
				setForeground(table.getSelectionForeground());
				setBackground(table.getSelectionBackground());
			}else{
				setForeground(table.getForeground());
				setBackground(table.getBackground());
			}
			
			// 非表示レコードの文字色変更
			int disableCol = recTable.getColumnModel().getColumnIndex(SearchPage.COL_LABEL_DISABLE);
			if (Boolean.parseBoolean(String.valueOf(recTable.getValueAt(row, disableCol)))) {
				if (isSelected) {
					setForeground(Color.GRAY);
				}
				else {
					setForeground(Color.LIGHT_GRAY);	
				}
			}
			
			if (value instanceof Boolean) {
				if (column == disableCol) {
					// チェックボックス返却
					JCheckBox obj = new JCheckBox(null, null, ((Boolean)table
							.getValueAt(row, column)).booleanValue());
					if (isSelected) {
						obj.setBackground(table.getSelectionBackground());
					} else {
						obj.setBackground(table.getBackground());
					}
					obj.setHorizontalAlignment(CENTER);
					return obj;
				}
			}
			return this;
		}
	}
	
	/**
	 * ペインマウスリスナー
	 * PackageViewPanelのインナークラス
	 */
	class PaneMouseListener extends MouseAdapter {
		
		@Override
		public void mouseReleased(MouseEvent e) {
			super.mouseReleased(e);
			
			// 右リリースの場合
			if (SwingUtilities.isRightMouseButton(e)) {
				recListPopup(e);
			}
		}