Example usage for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel

List of usage examples for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel

Introduction

In this page you can find the example usage for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel.

Prototype

public SingleSelectionModel() 

Source Link

Document

Constructs a SingleSelectionModel without a key provider.

Usage

From source file:com.toedter.gwt.demo.contacts.client.ui.ContactCell.java

License:Open Source License

public ContactListView3() {
    ContactCell contactCell = new ContactCell();
    cellList = new CellList<Contact>(contactCell);

    cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);

    // Add a selection model to handle user selection.
    final SingleSelectionModel<Contact> selectionModel = new SingleSelectionModel<Contact>();
    cellList.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override//from  w  w  w. j  a  v a  2s . c o m
        public void onSelectionChange(SelectionChangeEvent event) {
            Contact selectedContact = selectionModel.getSelectedObject();
            System.out.println("ContactListView2 .onSelectionChange()");
            presenter.select(selectedContact);
        }
    });
    initWidget(cellList);
}

From source file:com.vividcode.imap.app.client.web.application.admin.users.UsersView.java

License:Apache License

@Inject
UsersView(Binder uiBinder, DataGridStyle dataGridStyle, ListDataProvider<UserVO> dataProvider) {
    this.dataProvider = dataProvider;
    this.userDataGrid = new DataGrid<UserVO>(GlobalParameters.PAGE_SIZE, dataGridStyle);
    this.selectionModel = new SingleSelectionModel<UserVO>();

    userDataGrid.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override//from   ww  w .  j av  a 2 s .c o  m
        public void onSelectionChange(SelectionChangeEvent event) {
            update.setEnabled(true);
            remove.setEnabled(true);
        }
    });

    initWidget(uiBinder.createAndBindUi(this));
    dataProvider.addDataDisplay(userDataGrid);
    initColumns();
}

From source file:cz.filmtit.client.dialogs.MediaSelector.java

License:Open Source License

/**
 * Lets the user select the intended media source from the list of suggestions.
 * @param suggestions MediaSource suggestions.
 * @param receiver A class that waits for the user to select the media source and then sets it.
 *//*from w ww. jav  a2 s  .co m*/
public MediaSelector(List<MediaSource> suggestions, ReceivesSelectSource receiver) {
    super();
    listbox = new CellList<MediaSource>(new MediaCell());

    initWidget(uiBinder.createAndBindUi(this));

    listbox.addStyleName("mediasource_selector");
    listbox.setRowData(0, suggestions);
    listbox.setRowCount(suggestions.size());

    final SingleSelectionModel<MediaSource> selectionModel = new SingleSelectionModel<MediaSource>();
    listbox.setSelectionModel(selectionModel);

    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {
            selected = selectionModel.getSelectedObject();
        }
    });

    this.suggestions = suggestions;
    this.receiver = receiver;
}

From source file:cz.filmtit.client.subgestbox.PosteditBox.java

License:Open Source License

/**
 * Prepare the suggestions from the underlying TranslationResult to be
 * displayed (if they are already fetched and not loaded yet).
 *///from w ww .  j a  v a  2 s  . c o m
public void loadSuggestions() {

    if (loadedSuggestions == true) {
        return;
    }

    loadedSuggestions = true;
    // creating the suggestions pop-up panel:
    posteditPanel = new PopupPanel();
    posteditPanel.setAutoHideEnabled(true);
    posteditPanel.setStylePrimaryName("suggestionsPopup");

    final SingleSelectionModel<PosteditPair> selectionModel = new SingleSelectionModel<PosteditPair>();
    CellList<PosteditPair> cellList = new CellList<PosteditPair>(
            new PosteditBox.PosteditCell(selectionModel, posteditPanel));
    cellList.setWidth(Integer.toString(this.getOffsetWidth()) + "px");
    cellList.setKeyboardSelectionPolicy(HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.ENABLED);

    // setting tabindex so that the suggestions are focused between this box and the next one
    cellList.setTabIndex(this.getTabIndex());

    cellList.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {
            PosteditPair selected = selectionModel.getSelectedObject();
            if (selected != null) {

                //translationResult.setSelectedTranslationPairID(selected.getId());
                // copy the selected suggestion into the richtextarea with the annotation highlighting:
                setHTML(posteditBoxHTML(selected.getPosteditedChunk().getSurfaceForm()));
                // contents have changed - resize if necessary:
                updateVerticalSize();

                Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
                    @Override
                    public void execute() {
                        PosteditBox.this.setFocus(true);
                    }
                });

            }
        }
    });
    cellList.setRowData(this.getSuggestions());
    posteditPanel.setWidget(cellList);

    this.setPosteditWidget(posteditPanel);
}

From source file:cz.filmtit.client.subgestbox.SubgestBox.java

License:Open Source License

/**
 * Prepare the suggestions from the underlying TranslationResult to be
 * displayed (if they are already fetched and not loaded yet).
 *///  w  ww. java  2  s.co  m
public void loadSuggestions() {
    if (loadedSuggestions == true) {
        return;
    }

    loadedSuggestions = true;
    // creating the suggestions pop-up panel:
    suggestPanel = new PopupPanel();
    suggestPanel.setAutoHideEnabled(true);
    suggestPanel.setStylePrimaryName("suggestionsPopup");

    final SingleSelectionModel<TranslationPair> selectionModel = new SingleSelectionModel<TranslationPair>();
    CellList<TranslationPair> cellList = new CellList<TranslationPair>(
            new SuggestionCell(selectionModel, suggestPanel));
    cellList.setWidth(Integer.toString(this.getOffsetWidth()) + "px");
    cellList.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.ENABLED);

    // setting tabindex so that the suggestions are focused between this box and the next one
    cellList.setTabIndex(this.getTabIndex());

    cellList.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        public void onSelectionChange(SelectionChangeEvent event) {
            TranslationPair selected = selectionModel.getSelectedObject();
            if (!(selected instanceof TranslationError)) {
                if (selected != null) {
                    translationResult.setSelectedTranslationPairID(selected.getId());
                    // copy the selected suggestion into the richtextarea with the annotation highlighting:
                    setHTML(subgestBoxHTML(getAnnotatedSuggestionFromChunk(selected.getChunkL2())));
                    // contents have changed - resize if necessary:
                    updateVerticalSize();

                    Scheduler.get().scheduleDeferred(new ScheduledCommand() {
                        @Override
                        public void execute() {
                            SubgestBox.this.setFocus(true);
                        }
                    });
                }
            }
        }
    });
    cellList.setRowData(this.getSuggestions());
    suggestPanel.setWidget(cellList);

    this.setSuggestionWidget(suggestPanel);
}

From source file:de.uni_koeln.spinfo.maalr.webapp.ui.admin.client.user.list.UserList.java

License:Apache License

public UserList() {
    // The table is not provided by GWT, such that is
    // must be initialized before the widget is initialized:
    initCellTable();//from   w  w w.  j a v  a2 s  .c o m
    initWidget(uiBinder.createAndBindUi(this));
    // Only single rows can be selected:
    selectionModel = new SingleSelectionModel<LightUserInfo>();
    table.setSelectionModel(selectionModel);
}

From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.LexEditor.java

License:Apache License

private void initialize() {
    final SingleSelectionModel<LemmaVersion> selectionModel = new SingleSelectionModel<LemmaVersion>();
    provider = new ListDataProvider<LemmaVersion>();
    entryList = new QueryList(selectionModel, constants, messages);
    service = GWT.create(EditorService.class);
    //entryDetails = new LemmaEditorWidget(AsyncLemmaDescriptionLoader.getDescription(), UseCase.FIELDS_FOR_ADVANCED_EDITOR, false, 1, true, null);
    //antlr = new AntlrEditorWidget(entryDetails);
    initWidget(uiBinder.createAndBindUi(LexEditor.this));
    export.addClickHandler(new ClickHandler() {

        @Override//from  ww w  . ja  va2s.co  m
        public void onClick(ClickEvent event) {
            export();
        }
    });
    queryBox = new ConfigurableSearchArea(new IResultDisplay() {

        @Override
        public void updateResult(MaalrQuery maalrQuery, QueryResult result) {
            historyArea.setVisible(true);
            historyDataProvider.getList().clear();
            provider.getList().clear();
            provider.getList().addAll(result.getEntries());
            selectionModel.clear();
            resultSummary.setText(messages.displayResults(result.getEntries().size(), result.getMaxEntries()));
            entryList.setQuery(maalrQuery);
            entryList.redraw();
            if (result.getEntries().size() < result.getMaxEntries()) {
                pager.createPageLinks(maalrQuery, result);
                pager.setVisible(true);
            } else {
                pager.setVisible(false);
            }
        }
    }, true, true, Modules.ANCHOR_LEX_EDITOR + "?");
    pager.setHistoryPrefix(Modules.ANCHOR_LEX_EDITOR + "?");
    searchBoxParent.add(queryBox);
    entryList.setDataProvider(provider);
    entryList.setLemmaDescription(AsyncLemmaDescriptionLoader.getDescription());
    entryList.setModifyCommand(new Command() {

        @Override
        public void execute() {
            ((SingleSelectionModel) entryList.getSelectionModel()).clear();
            entryList.redraw();
        }

    });
    entryList.setDeleteCommand(new AsyncCallback<LemmaVersion>() {

        @Override
        public void onFailure(Throwable caught) {
        }

        @Override
        public void onSuccess(LemmaVersion result) {
            boolean removed = provider.getList().remove(result);
            entryList.redraw();
        }
    });
    provider.addDataDisplay(entryList.getTable());
    entryList.getTable().setHeight("1000px");
    historyDataProvider = new HistoryDataProvider(historyList.getTable());
    historyList.setDataProvider(historyDataProvider);
    historyList.getTable().setHeight("400px");
    historyList.setLemmaDescription(AsyncLemmaDescriptionLoader.getDescription());
    deleteOldGroup.getElement().getStyle().setFloat(Float.RIGHT);
    entryList.addLoadHandler(new LazyLoadHandler() {

        @Override
        public void onLoad(LazyLoadEvent event) {
            if (query != null) {
                query.setPageNr(query.getPageNr() + 1);
                service.search(query, new AsyncCallback<QueryResult>() {

                    @Override
                    public void onSuccess(QueryResult result) {
                        if (provider.getList().size() < result.getMaxEntries()) {
                            provider.getList().addAll(result.getEntries());
                            entryList.getTable().setVisibleRange(0, provider.getList().size());
                            resultSummary.setText(
                                    messages.displayResults(provider.getList().size(), result.getMaxEntries()));
                        }
                    }

                    @Override
                    public void onFailure(Throwable caught) {
                    }
                });
            }
        }
    });
    entryList.addSelectionChangedHandler(new Handler() {

        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            LemmaVersion selected = selectionModel.getSelectedObject();
            if (selected != null) {
                service.getLexEntry(selected.getLexEntryId(), new AsyncCallback<LexEntry>() {

                    @Override
                    public void onFailure(Throwable caught) {
                    }

                    @Override
                    public void onSuccess(LexEntry result) {
                        historyArea.setVisible(true);
                        historyDataProvider.setEntry(result, fullHistory.isToggled());
                    }
                });
            } else {
                historyDataProvider.setEntry(null, fullHistory.isToggled());
            }
        }
    });
    fullHistory.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            historyDataProvider.setEntry(historyDataProvider.getEntry(), !fullHistory.isToggled());
        }
    });
    deleteHistory.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            final LexEntry entry = historyDataProvider.getEntry();
            if (entry.getCurrent() == null) {
                Dialog.showInfo(constants.operationUnavailable(), constants.requireApprovedVers());
            } else {
                service.dropOutdatedHistory(entry, new AsyncCallback<LexEntry>() {

                    @Override
                    public void onFailure(Throwable caught) {
                        Dialog.showError(constants.failedToDropEntryHistory(), caught);
                    }

                    @Override
                    public void onSuccess(LexEntry result) {
                        historyDataProvider.setEntry(result, !fullHistory.isToggled());
                        entryList.redraw();
                    }
                });
            }
        }
    });
    newEntry.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            AdvancedEditor.openEditor(new AsyncCallback<LexEntry>() {

                @Override
                public void onFailure(Throwable caught) {
                    Dialog.showError(constants.failedToCreateEntry(), caught);
                }

                @Override
                public void onSuccess(LexEntry result) {
                    //Window.alert("Entry has been saved.");
                }
            }, constants, messages);
            //entryDetails.setData(new LemmaVersion());
        }
    });
}

From source file:de.uni_koeln.spinfo.maalr.webapp.ui.editor.client.entry.list.EntryVersionsList.java

License:Apache License

public EntryVersionsList() {
    super(new SingleSelectionModel<LemmaVersion>());
}

From source file:eu.riscoss.client.entities.EntityPropertyPage.java

License:Apache License

protected void loadProperties(JSONValue response) {
    rasLoaded = false;// w ww  .  j  a  v a 2s  . co m
    info = new JsonEntitySummary(response);

    confDialog = new RDCConfDialog(module);
    confDialog.setSelectedEntity(entity);

    layer = info.getLayer();

    parentList = new ArrayList<>();
    childrenList = new ArrayList<>();
    parentsListbox = new ListBox();
    childrenListbox = new ListBox();

    for (int i = 0; i < info.getParentList().size(); ++i) {
        parentList.add(info.getParentList().get(i).isString().stringValue());
    }
    for (int i = 0; i < info.getChildrenList().size(); ++i) {
        childrenList.add(info.getChildrenList().get(i).isString().stringValue());
    }

    //Properties Panel
    v = new VerticalPanel();
    propertiesPanel = new VerticalPanel();

    Label layerInfoLabel = new Label("Layer information");
    layerInfoLabel.setStyleName("smallTitle");
    Label parentInfoLabel = new Label("Hierarchy information");
    parentInfoLabel.setStyleName("smallTitle");

    loadContextualInfoData();
    propertiesPanel.add(layerInfoLabel);
    propertiesPanel.add(tb);
    propertiesPanel.add(parentInfoLabel);
    propertiesPanel.add(v);

    v.setWidth("100%");
    {
        HorizontalPanel hPanel = new HorizontalPanel();
        hPanel.setWidth("100%");
        parents = new VerticalPanel();
        children = new VerticalPanel();

        HorizontalPanel data = new HorizontalPanel();

        Label l = new Label("Parent");
        l.setStyleName("bold");
        data.add(l);
        RiscossJsonClient.getCandidateChildren(entity, new JsonCallback() {
            @Override
            public void onFailure(Method method, Throwable exception) {
                Window.alert(exception.getMessage());
            }

            @Override
            public void onSuccess(Method method, JSONValue response) {
                for (int i = 0; i < response.isArray().size(); ++i) {
                    childrenListbox.addItem(response.isArray().get(i).isString().stringValue());
                }
                RiscossJsonClient.getCandidateParents(entity, new JsonCallback() {
                    @Override
                    public void onFailure(Method method, Throwable exception) {
                        Window.alert(exception.getMessage());
                    }

                    @Override
                    public void onSuccess(Method method, JSONValue response) {
                        for (int i = 0; i < response.isArray().size(); ++i) {
                            parentsListbox.addItem(response.isArray().get(i).isString().stringValue());
                        }
                    }
                });
            }
        });
        /*for (int i = 0; i < entitiesList.size(); ++i) {
           if (!entitiesList.get(i).equals(entity)) {
              parentsListbox.addItem(entitiesList.get(i));
              childrenListbox.addItem(entitiesList.get(i));
           }
        }*/
        data.add(parentsListbox);
        Button b = new Button("Add parent", new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                String newParent = parentsListbox.getItemText(parentsListbox.getSelectedIndex());
                if (parentList.contains(newParent)) {
                    Window.alert("The selected entity is already a parent");
                    return;
                }
                if (childrenList.contains(newParent)) {
                    Window.alert(
                            "The selected entity is already a children. An entity can not be parent and child of the same entity.");
                    return;
                }
                parentList.add(newParent);
                parentsTable.setRowData(0, parentList);
                changedData = true;
            }
        });
        b.setStyleName("Button");
        data.add(b);
        data.setStyleName("marginTopBottom");
        parents.add(data);

        parentsTable = new CellTable<String>(15, (Resources) GWT.create(TableResources.class));
        parentsTable.setWidth("100%");
        t = new TextColumn<String>() {
            @Override
            public String getValue(String arg0) {
                return arg0;
            }
        };
        deleteParent = new Button("Delete parent");
        deleteParent.setStyleName("deleteButton");
        final SingleSelectionModel<String> selectionModel = new SingleSelectionModel<String>();
        parentsTable.setSelectionModel(selectionModel);
        selectionModel.addSelectionChangeHandler(new Handler() {
            @Override
            public void onSelectionChange(SelectionChangeEvent arg0) {
                parents.remove(deleteParent);
                deleteParent.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        parentList.remove(selectionModel.getSelectedObject());
                        parents.remove(parentsTable);
                        parents.remove(pager);
                        parentsTable = new CellTable<String>(15, (Resources) GWT.create(TableResources.class));
                        parentsTable.setWidth("100%");
                        parentsTable.setSelectionModel(selectionModel);
                        t = new TextColumn<String>() {
                            @Override
                            public String getValue(String arg0) {
                                return arg0;
                            }
                        };
                        parentsTable.addColumn(t, "Parents");
                        if (parentList.size() > 0)
                            parentsTable.setRowData(0, parentList);
                        else {
                            parentList.add("");
                            parentsTable.setRowData(0, parentList);
                            parentList.remove(0);
                        }
                        parentsTable.setStyleName("table");

                        parentDataProvider = new ListDataProvider<String>();
                        parentDataProvider.addDataDisplay(parentsTable);

                        for (int i = 0; i < parentList.size(); i++) {
                            parentDataProvider.getList().add(parentList.get(i));
                        }

                        pager = new SimplePager();
                        pager.setDisplay(parentsTable);

                        parents.add(parentsTable);
                        parents.add(pager);

                        parents.remove(deleteParent);
                        changedData = true;
                    }
                });
                parents.add(deleteParent);
            }
        });

        parentsTable.addColumn(t, "Parents");

        if (parentList.size() > 0)
            parentsTable.setRowData(0, parentList);
        else {
            parentList.add("");
            parentsTable.setRowData(0, parentList);
            parentList.remove(0);
        }
        parentsTable.setStyleName("table");

        parentDataProvider = new ListDataProvider<String>();
        parentDataProvider.addDataDisplay(parentsTable);

        for (int i = 0; i < parentList.size(); i++) {
            parentDataProvider.getList().add(parentList.get(i));
        }

        pager = new SimplePager();
        pager.setDisplay(parentsTable);

        parents.add(parentsTable);
        parents.add(pager);

        HorizontalPanel data2 = new HorizontalPanel();

        Label l2 = new Label("Children");
        l2.setStyleName("bold");
        data2.add(l2);
        data2.add(childrenListbox);
        Button b2 = new Button("Add children", new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                String newChildren = childrenListbox.getItemText(childrenListbox.getSelectedIndex());
                if (childrenList.contains(newChildren)) {
                    Window.alert("The selected entity is already a children");
                    return;
                }
                if (parentList.contains(newChildren)) {
                    Window.alert(
                            "The selected entity is already a children. An entity can not be parent and child of the same entity.");
                    return;
                }
                childrenList.add(newChildren);
                childrenTable.setRowData(0, childrenList);
                changedData = true;
            }
        });
        b2.setStyleName("Button");
        data2.add(b2);
        data2.setStyleName("marginTopBottom");
        children.add(data2);

        childrenTable = new CellTable<String>(15, (Resources) GWT.create(TableResources.class));
        childrenTable.setWidth("100%");
        t2 = new TextColumn<String>() {
            @Override
            public String getValue(String arg0) {
                return arg0;
            }
        };
        deleteChildren = new Button("Delete children");
        deleteChildren.setStyleName("deleteButton");
        final SingleSelectionModel<String> selectionModel2 = new SingleSelectionModel<String>();
        childrenTable.setSelectionModel(selectionModel2);
        selectionModel2.addSelectionChangeHandler(new Handler() {
            @Override
            public void onSelectionChange(SelectionChangeEvent arg0) {
                children.remove(deleteChildren);
                deleteChildren.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        childrenList.remove(selectionModel2.getSelectedObject());
                        children.remove(childrenTable);
                        children.remove(childrenPager);
                        childrenTable = new CellTable<String>(15, (Resources) GWT.create(TableResources.class));
                        childrenTable.setWidth("100%");
                        childrenTable.setSelectionModel(selectionModel2);
                        t2 = new TextColumn<String>() {
                            @Override
                            public String getValue(String arg0) {
                                return arg0;
                            }
                        };
                        childrenTable.addColumn(t, "Children");
                        if (childrenList.size() > 0)
                            childrenTable.setRowData(0, childrenList);
                        else {
                            childrenList.add("");
                            childrenTable.setRowData(0, childrenList);
                            childrenList.remove(0);
                        }
                        childrenTable.setStyleName("table");

                        childrenDataProvider = new ListDataProvider<String>();
                        childrenDataProvider.addDataDisplay(childrenTable);

                        for (int i = 0; i < childrenList.size(); i++) {
                            childrenDataProvider.getList().add(childrenList.get(i));
                        }

                        childrenPager = new SimplePager();
                        childrenPager.setDisplay(childrenTable);

                        children.add(childrenTable);
                        children.add(childrenPager);

                        children.remove(deleteChildren);
                        changedData = true;
                    }
                });
                children.add(deleteChildren);
            }
        });

        childrenTable.addColumn(t, "Children");

        if (childrenList.size() > 0)
            childrenTable.setRowData(0, childrenList);
        else {
            childrenList.add("");
            childrenTable.setRowData(0, childrenList);
            childrenList.remove(0);
        }
        childrenTable.setStyleName("table");

        childrenDataProvider = new ListDataProvider<String>();
        childrenDataProvider.addDataDisplay(childrenTable);

        for (int i = 0; i < childrenList.size(); i++) {
            childrenDataProvider.getList().add(childrenList.get(i));
        }

        childrenPager = new SimplePager();
        childrenPager.setDisplay(childrenTable);

        children.add(childrenTable);
        children.add(childrenPager);

        hPanel.setWidth("100%");
        hPanel.add(parents);
        HorizontalPanel h = new HorizontalPanel();
        h.setWidth("100px");
        hPanel.add(h);
        hPanel.add(children);
        v.add(hPanel);

    }

    entityDataBox = new EntityDataBox();
    entityDataBox.setSelectedEntity(entity);
    rdr.setWidget(entityDataBox);
    loadRASWidget();
}

From source file:eu.riscoss.client.layers.LayersModule.java

License:Apache License

private void reloadEntityTable(JSONValue response) {
    list = response;/*from   w  w  w  . j ava2s  .  c  om*/
    entities = new ArrayList<>();
    for (int i = 0; i < response.isArray().size(); i++) {
        JSONObject o = (JSONObject) response.isArray().get(i);
        entities.add(o);
    }
    leftPanelEntity.clear();
    table = new CellTable<JSONObject>(15, (Resources) GWT.create(TableResources.class));
    Column<JSONObject, String> t = new Column<JSONObject, String>(new TextCell()) {
        @Override
        public String getValue(JSONObject arg0) {
            return arg0.get("name").isString().stringValue();
        }
    };

    final SingleSelectionModel<JSONObject> selectionModel = new SingleSelectionModel<JSONObject>();
    table.setSelectionModel(selectionModel);
    selectionModel.addSelectionChangeHandler(new Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent arg0) {
            if (!selectionModel.getSelectedObject().get("name").isString().stringValue().equals("")) {
                selectedEntity = selectionModel.getSelectedObject().get("name").isString().stringValue();
                reloadEntityInfo();
            }
        }
    });

    table.addColumn(t, selectedLayer + " Entities");

    if (entities.size() > 0)
        table.setRowData(0, entities);
    else {
        entities.add(new JSONObject());
        table.setRowData(0, entities);
        entities.remove(0);
    }
    table.setStyleName("table");
    table.setWidth("100%");

    dataProvider = new ListDataProvider<JSONObject>();
    dataProvider.addDataDisplay(table);

    for (int i = 0; i < entities.size(); i++) {
        dataProvider.getList().add(entities.get(i));
    }

    pager = new SimplePager();
    pager.setDisplay(table);

    tablePanel = new VerticalPanel();
    tablePanel.setWidth("100%");
    tablePanel.add(table);
    tablePanel.add(pager);

    HorizontalPanel layerData = new HorizontalPanel();
    layerData.setStyleName("layerData");
    Label name = new Label("Name");
    name.setStyleName("bold");
    layerData.add(name);
    entityName = new TextBox();
    entityName.setWidth("120px");
    entityName.setStyleName("layerNameField");
    layerData.add(entityName);
    leftPanelEntity.add(layerData);

    HorizontalPanel buttons = new HorizontalPanel();

    newEntityButton.setText("New " + selectedLayer + " entity");
    buttons.add(newEntityButton);

    leftPanelEntity.add(buttons);
    leftPanelEntity.add(tablePanel);
}