public void refresh(RefreshEvent event) {
        LocalGameRefreshEvent ev = (LocalGameRefreshEvent) event;
        WorldModel wm = (WorldModel) ev.getSource();
        int i = ev.getX();
        int j = ev.getY();
        AbstractState s = wm.getState(i, j);
        
        if (s.getFlag() == AbstractState.HOLLOW_FLAG) {
            cellLabel.setIcon(null);
            cellLabel.setText("");
        } else if (s.getFlag() == AbstractState.MINE_FLAG) {
            cellLabel.setIcon(CellView.flagImg);
        } else if (s.getFlag() == AbstractState.TEMP_FLAG) {
            cellLabel.setIcon(CellView.tempFlagImg);
        } else if (s.getValue() == AbstractState.MINE_VALUE) {
            this.setEnabled(false);
            this.setBackground(Color.red);
            cellLabel.setIcon(CellView.mineImg);
        } else if (s.getValue() == AbstractState.EMPTY_CELL_VALUE) {
            cellLabel.setIcon(null);
            this.setEnabled(false);
            int neighborMineCount = s.getNeighborMineCount();
            if (neighborMineCount > 0) {
                cellLabel.setText(Integer.toString(neighborMineCount));
                cellLabel.setForeground(CellView.neighborColor[neighborMineCount-1]);
            }
        }
    }