    private void createItemGrid() {
        panel.clear();
        ContentPanel contentPanel = new FullContentPanel();
        contentPanel.setHeading("All Items");
        if (info != null) {
            contentPanel = new PaddedContentPanel();
            contentPanel.setHeading(info.getName());
            itemPanel.setHeading(info.getName());
        }
        contentPanel.setAutoHeight(true);
        contentPanel.setTopComponent(new InlineHelpPanel(repository.getRepositoryConstants().repo_Tip(), 14));
        BeanModelFactory factory = BeanModelLookup.get().getFactory(ItemInfo.class);
        List<BeanModel> model = factory.createModel(items);
        final ListStore<BeanModel> store = new ListStore<BeanModel>();
        store.add(model);
        ToolbarButtonBar toolbar = new ToolbarButtonBar();
        SearchStoreFilterField<BeanModel> filter = new SearchStoreFilterField<BeanModel>() {
            @Override
            protected boolean doSelect(Store<BeanModel> store, BeanModel parent,
                                       BeanModel record, String property, String filter) {
                String name = record.get("name");
                name = name.toLowerCase();
                String authorName = record.get("authorName");
                authorName = authorName.toLowerCase();
                String type = record.get("type");
                type = type.toLowerCase();
                if (name.indexOf(filter.toLowerCase()) != -1 ||
                        authorName.indexOf(filter.toLowerCase()) != -1 ||
                        type.indexOf(filter.toLowerCase()) != -1) {
                    return true;
                }
                return false;
            }
        };
        filter.bind(store);
        toolbar.add(filter);
        toolbar.add(new FillToolItem());
        selectionModel = new CheckBoxSelectionModel<BeanModel>();
        List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
        columns.add(selectionModel.getColumn());
        ColumnConfig icon = new ColumnConfig("type", " ", 23);
        icon.setRenderer(new GridCellRenderer() {
            public Object render(ModelData modelData, String s, ColumnData columnData, int i, int i1, ListStore listStore, Grid grid) {
                if(modelData.get(s).equals("Workspace")) {
                           return  new Image(Images.ICON_FOLDER);
                }
                return new Image(Images.ICON_TEXT);
            }
        });
        columns.add(icon);
        columns.add(new ColumnConfig("name", "Name", 250));
        columns.add(new ColumnConfig("authorName", "Author", 200));
        columns.add(new ColumnConfig("type", "Type", 200));
        ColumnModel columnModel = new ColumnModel(columns);
        BasicGrid<BeanModel> grid = new BasicGrid<BeanModel>(store, columnModel);
        grid.setSelectionModel(selectionModel);
        grid.addPlugin(selectionModel);
        grid.setAutoExpandColumn("type");
        grid.addListener(Events.CellClick, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                GridEvent ge = (GridEvent) be;
                if (ge.getColIndex() > 0) {
                    ItemInfo ii = store.getAt(ge.getRowIndex()).getBean();
                    menuPanel.showItem(ii);
                    History.newItem("item/" + ii.getId());
                }
            }
        });
        contentPanel.add(toolbar);
        contentPanel.add(grid);
        if (info == null || info.isModifiable()) {
            if (info == null || info.getType().equals("Workspace")) {
                final ToolbarButton newWkspaceBtn = new ToolbarButton("New Workspace");
                newWkspaceBtn.setStyleName("toolbar-btn_center");
                newWkspaceBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
                    @Override
                    public void componentSelected(ToolbarButtonEvent ce) {
                        showNewWorkspace();
                    }
                });
                newWkspaceBtn.setToolTip(repository.getRepositoryConstants().repo_NewWorkspace());
                toolbar.add(newWkspaceBtn);
                final ToolbarButton newArtifactBtn = new ToolbarButton("New Artifact");
                newArtifactBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
                    @Override
                    public void componentSelected(ToolbarButtonEvent ce) {
                        showArtifactUploadForm(true);
                    }
                });
                newArtifactBtn.setToolTip(repository.getRepositoryConstants().repo_NewArtifact());
                toolbar.add(newArtifactBtn);
            } else if (info.getType().equals("Artifact")) {
                final ToolbarButton newVersionBtn = new ToolbarButton("New Version");
                newVersionBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
                    @Override
                    public void componentSelected(ToolbarButtonEvent ce) {
                        showArtifactUploadForm(false);
                    }
                });
                newVersionBtn.setToolTip(repository.getRepositoryConstants().repo_Items_New());
                toolbar.add(newVersionBtn);
            } else {
                String token;
                if (info.getId() != null) {
                    token = "add-item/" + info.getId();
                } else {
                    token = "add-item/";
                }
                ToolbarButton newBtn = WidgetHelper.createToolbarHistoryButton("New", token, repository.getRepositoryConstants().repo_Items_New());
                toolbar.add(newBtn);
            }
        }
        final ToolbarButton delBtn = new ToolbarButton("Delete");
        delBtn.setToolTip(repository.getRepositoryConstants().repo_Delete());
        delBtn.setEnabled(false);
        delBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
            @Override
            public void componentSelected(ToolbarButtonEvent ce) {
                warnDelete(selectionModel.getSelectedItems());
            }
        });
        if (info == null || info.isDeletable()) {
            toolbar.add(delBtn);
        }
        selectionModel.addSelectionChangedListener(new SelectionChangedListener<BeanModel>() {
            public void selectionChanged(SelectionChangedEvent<BeanModel> se) {
                boolean isSelected = selectionModel.getSelectedItems().size() > 0;
                delBtn.setEnabled(isSelected);
            }
        });
        panel.add(contentPanel);
    }

    private void createItemGrid() {
        panel.clear();
        ContentPanel contentPanel = new FullContentPanel();
        contentPanel.setHeading("All Items");
        if (info != null) {
            contentPanel = new PaddedContentPanel();
            contentPanel.setHeading(info.getName());
            itemPanel.setHeading(info.getName());
        }
        contentPanel.setAutoHeight(true);
        contentPanel.setTopComponent(new InlineHelpPanel(repository.getRepositoryConstants().repo_Tip(), 14));
        BeanModelFactory factory = BeanModelLookup.get().getFactory(ItemInfo.class);
        List<BeanModel> model = factory.createModel(items);
        final ListStore<BeanModel> store = new ListStore<BeanModel>();
        store.add(model);
        ToolbarButtonBar toolbar = new ToolbarButtonBar();
        SearchStoreFilterField<BeanModel> filter = new SearchStoreFilterField<BeanModel>() {
            @Override
            protected boolean doSelect(Store<BeanModel> store, BeanModel parent,
                                       BeanModel record, String property, String filter) {
                String name = record.get("name");
                name = name.toLowerCase();
                String authorName = record.get("authorName");
                authorName = authorName.toLowerCase();
                String type = record.get("type");
                type = type.toLowerCase();
                if (name.indexOf(filter.toLowerCase()) != -1 ||
                        authorName.indexOf(filter.toLowerCase()) != -1 ||
                        type.indexOf(filter.toLowerCase()) != -1) {
                    return true;
                }
                return false;
            }
        };
        filter.bind(store);
        toolbar.add(filter);
        toolbar.add(new FillToolItem());
        selectionModel = new CheckBoxSelectionModel<BeanModel>();
        List<ColumnConfig> columns = new ArrayList<ColumnConfig>();
        columns.add(selectionModel.getColumn());
        ColumnConfig icon = new ColumnConfig("type", " ", 23);
        icon.setRenderer(new GridCellRenderer() {
            public Object render(ModelData modelData, String s, ColumnData columnData, int i, int i1, ListStore listStore, Grid grid) {
                Object obj = modelData.get(s);
                if(obj.equals("Workspace")) {
                           return  new Image(Images.ICON_FOLDER);
                }
                return new Image(Images.ICON_TEXT);
            }
        });
        columns.add(icon);
        columns.add(new ColumnConfig("name", "Name", 250));
        columns.add(new ColumnConfig("authorName", "Author", 200));
        columns.add(new ColumnConfig("type", "Type", 200));
        ColumnModel columnModel = new ColumnModel(columns);
        BasicGrid<BeanModel> grid = new BasicGrid<BeanModel>(store, columnModel);
        grid.setSelectionModel(selectionModel);
        grid.addPlugin(selectionModel);
        grid.setAutoExpandColumn("type");
        grid.addListener(Events.CellClick, new Listener<BaseEvent>() {
            public void handleEvent(BaseEvent be) {
                GridEvent ge = (GridEvent) be;
                if (ge.getColIndex() > 0) {
                    ItemInfo ii = store.getAt(ge.getRowIndex()).getBean();
                    menuPanel.showItem(ii);
                    History.newItem("item/" + ii.getId());
                }
            }
        });
        contentPanel.add(toolbar);
        contentPanel.add(grid);
        if (info == null || info.isModifiable()) {
            if (info == null || info.getType().equals("Workspace")) {
                final ToolbarButton newWkspaceBtn = new ToolbarButton("New Workspace");
                newWkspaceBtn.setStyleName("toolbar-btn_center");
                newWkspaceBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
                    @Override
                    public void componentSelected(ToolbarButtonEvent ce) {
                        showNewWorkspace();
                    }
                });
                newWkspaceBtn.setToolTip(repository.getRepositoryConstants().repo_NewWorkspace());
                toolbar.add(newWkspaceBtn);
                final ToolbarButton newArtifactBtn = new ToolbarButton("New Artifact");
                newArtifactBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
                    @Override
                    public void componentSelected(ToolbarButtonEvent ce) {
                        showArtifactUploadForm(true);
                    }
                });
                newArtifactBtn.setToolTip(repository.getRepositoryConstants().repo_NewArtifact());
                toolbar.add(newArtifactBtn);
            } else if (info.getType().equals("Artifact")) {
                final ToolbarButton newVersionBtn = new ToolbarButton("New Version");
                newVersionBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
                    @Override
                    public void componentSelected(ToolbarButtonEvent ce) {
                        showArtifactUploadForm(false);
                    }
                });
                newVersionBtn.setToolTip(repository.getRepositoryConstants().repo_Items_New());
                toolbar.add(newVersionBtn);
            } else {
                String token;
                if (info.getId() != null) {
                    token = "add-item/" + info.getId();
                } else {
                    token = "add-item/";
                }
                ToolbarButton newBtn = WidgetHelper.createToolbarHistoryButton("New", token, repository.getRepositoryConstants().repo_Items_New());
                toolbar.add(newBtn);
            }
        }
        final ToolbarButton delBtn = new ToolbarButton("Delete");
        delBtn.setToolTip(repository.getRepositoryConstants().repo_Delete());
        delBtn.setEnabled(false);
        delBtn.addSelectionListener(new SelectionListener<ToolbarButtonEvent>() {
            @Override
            public void componentSelected(ToolbarButtonEvent ce) {
                warnDelete(selectionModel.getSelectedItems());
            }
        });
        if (info == null || info.isDeletable()) {
            toolbar.add(delBtn);
        }
        selectionModel.addSelectionChangedListener(new SelectionChangedListener<BeanModel>() {
            public void selectionChanged(SelectionChangedEvent<BeanModel> se) {
                boolean isSelected = selectionModel.getSelectedItems().size() > 0;
                delBtn.setEnabled(isSelected);
            }
        });
        panel.add(contentPanel);
    }
