private void updateShop(final ShopCharacter shop, final PlayerCharacter player){
		for(final Item item : shop.getInventory()){
			
			// create item panel
			JPanel shopItem = new JPanel();
			shopItem.setPreferredSize(new Dimension(250, 70));
			shopItem.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
			shopItem.setOpaque(false);
			
			// create item image
			ItemIcon itemIcon = new ItemIcon(item);
			shopItem.add(itemIcon);
			
			// create item info panel
			JPanel itemInfo = new JPanel();
			itemInfo.setPreferredSize(new Dimension(120, 70));
			itemInfo.setBorder(new EmptyBorder(2, 10, 0, 0));
			itemInfo.setOpaque(false);
			itemInfo.setLayout(new BoxLayout(itemInfo, BoxLayout.Y_AXIS));
			shopItem.add(itemInfo);
			
			// create item name label
			JLabel itemName = new JLabel(item.getName());
			itemName.setFont(new Font("Verdana", Font.BOLD, 14));
			itemName.setBorder(new EmptyBorder(0,0,6,0));
			itemName.setForeground(Color.WHITE);
			itemInfo.add(itemName);
			
			// create item value label
			JLabel itemValue = new JLabel("Value:     " + item.getItemValue()+"");
			itemValue.setFont(new Font("Verdana", Font.PLAIN, 11));
			itemValue.setForeground(Color.WHITE);
			itemInfo.add(itemValue);
			
			// create item sellValue label
			JLabel itemSellValue = new JLabel("Sell for:   " + ((item.getItemValue()*shop.getShopBuyBackFactor())/100)+"");
			itemSellValue.setFont(new Font("Verdana", Font.PLAIN, 11));
			itemSellValue.setForeground(Color.WHITE);
			itemInfo.add(itemSellValue);
			
			// create item effect label
			JLabel itemEffect = new JLabel();
			if(item instanceof WeaponItem){
				itemEffect.setText("Damage: " + ((WeaponItem) item).getAttackDamage());
			} else if (item instanceof ArmorItem){
				itemEffect.setText("Armor:    " + ((ArmorItem) item).getDefenceRating());
			} else if(item instanceof LifeItem){
				itemEffect.setText("Life:        " + ((LifeItem) item).getLifeValue());
			}
			itemEffect.setFont(new Font("Verdana", Font.PLAIN, 11));
			itemEffect.setForeground(Color.WHITE);
			itemInfo.add(itemEffect);		
			
			// create button are
			JPanel buttonArea = new JPanel();
			buttonArea.setPreferredSize(new Dimension(60, 50));
			buttonArea.setOpaque(false);
			buttonArea.setLayout(new BoxLayout(buttonArea, BoxLayout.Y_AXIS));			
			shopItem.add(buttonArea);
			
			// create sell button
			JButton sell = new JButton("Sell!");
			sell.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					sellItem(item, player, shop);
					requestFocusInWindow();
				}
			});		
			
			// create buy button
			JButton buy = new JButton("Buy!");
			buy.addActionListener(new ActionListener(){
				public void actionPerformed(ActionEvent e){
					buyItem(item, player);
					requestFocusInWindow();
				}
			});		
			
			buttonArea.add(Box.createVerticalGlue());
			buttonArea.add(buy);
			buttonArea.add(sell);
			
			shopPanel.add(shopItem);
		}
	}