private JPopupMenu createToolMenu() {
		final JPopupMenu ret = new JPopupMenu();
		ImageIcon publicImg = null, protectImg = null, privateImg = null, packageImg = null, upImg = null, downImg = null;
		ImageIcon addItemImg = null, delItemImg = null;
		try {
			addItemImg = new ImageIcon(ImageIO.read(this.getClass()
					.getResource("images/addItem.png")));
			delItemImg = new ImageIcon(ImageIO.read(this.getClass()
					.getResource("images/delItem.png")));
			publicImg = new ImageIcon(ImageIO.read(this.getClass().getResource(
					"images/public.png")));
			protectImg = new ImageIcon(ImageIO.read(this.getClass()
					.getResource("images/protected.png")));
			privateImg = new ImageIcon(ImageIO.read(this.getClass()
					.getResource("images/private.png")));
			packageImg = new ImageIcon(ImageIO.read(this.getClass()
					.getResource("images/package.png")));
			upImg = new ImageIcon(ImageIO.read(this.getClass().getResource(
					"images/upitem.png")));
			downImg = new ImageIcon(ImageIO.read(this.getClass().getResource(
					"images/downitem.png")));
		} catch (Exception ee) {

		}
		JButton btnAdd = new JButton(addItemImg);
		JButton btnDel = new JButton(delItemImg);
		JButton btnPublic = new JButton(publicImg);
		JButton btnProtect = new JButton(protectImg);
		JButton btnPrivate = new JButton(privateImg);
		JButton btnPackage = new JButton(packageImg);
		JButton btnUp = new JButton(upImg);
		JButton btnDown = new JButton(downImg);
		btnAdd.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MethodTable.this.clearSelection();
				attributeModel.addRow("+",
						"Method" + MethodTable.this.getRowCount());
				updateUI();
			}
		});
		btnAdd.setContentAreaFilled(false);
		btnDel.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				int delIdx;
				delIdx = MethodTable.this.getSelectedRow();
				if (delIdx < 0)
					return;
				MethodTable.this.attributeModel.removeRow(delIdx);
				MethodTable.this.clearSelection();
				updateUI();
			}
		});
		btnDel.setContentAreaFilled(false);
		btnPublic.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MethodTable.this.getSelectedRow() >= 0) {
					int rowIdx = MethodTable.this.getSelectedRow();
					attributeModel.setValueAt("+", rowIdx, 0);
				}
			}
		});
		btnPublic.setContentAreaFilled(false);
		btnProtect.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MethodTable.this.getSelectedRow() >= 0) {
					int rowIdx = MethodTable.this.getSelectedRow();
					attributeModel.setValueAt("#", rowIdx, 0);
				}
			}
		});
		btnProtect.setContentAreaFilled(false);
		btnPrivate.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MethodTable.this.getSelectedRow() >= 0) {
					int rowIdx = MethodTable.this.getSelectedRow();
					attributeModel.setValueAt("-", rowIdx, 0);
				}
			}
		});
		btnPrivate.setContentAreaFilled(false);
		btnPackage.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MethodTable.this.getSelectedRow() >= 0) {
					int rowIdx = MethodTable.this.getSelectedRow();
					attributeModel.setValueAt("~", rowIdx, 0);
				}
			}
		});
		btnPackage.setContentAreaFilled(false);
		btnUp.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MethodTable.this.getSelectedRow() > 0) {
					int rowIdx = MethodTable.this.getSelectedRow();
					Object obj0, obj1;
					obj0 = attributeModel.getValueAt(rowIdx, 0);
					obj1 = attributeModel.getValueAt(rowIdx, 1);
					attributeModel.removeRow(rowIdx);
					attributeModel.insertRow(rowIdx - 1, obj0, obj1);
					MethodTable.this.setRowSelectionInterval(rowIdx - 1,
							rowIdx - 1);
				}
				updateUI();
			}
		});
		btnUp.setContentAreaFilled(false);
		btnDown.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if (MethodTable.this.getSelectedRow() < MethodTable.this
						.getRowCount() - 1) {
					int rowIdx = MethodTable.this.getSelectedRow();
					if (rowIdx >= 0) {
						Object obj0, obj1;
						obj0 = attributeModel.getValueAt(rowIdx, 0);
						obj1 = attributeModel.getValueAt(rowIdx, 1);
						attributeModel.removeRow(rowIdx);
						attributeModel.insertRow(rowIdx + 1, obj0, obj1);
						MethodTable.this.setRowSelectionInterval(rowIdx + 1,
								rowIdx + 1);
					}
				}
				updateUI();
			}
		});
		btnDown.setContentAreaFilled(false);
		ret.add(btnAdd);
		ret.add(btnDel);
		ret.add(btnPublic);
		ret.add(btnProtect);
		ret.add(btnPrivate);
		ret.add(btnPackage);
		ret.add(btnUp);
		ret.add(btnDown);
		ret.setBackground(null);
		ret.setVisible(false);
		return ret;
	}