2 * Copyright (C) 2011 Openismus GmbH
4 * This file is part of GWT-Glom.
6 * GWT-Glom is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
11 * GWT-Glom is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with GWT-Glom. If not, see <http://www.gnu.org/licenses/>.
20 package org.glom.web.client.ui.cell;
22 import org.glom.web.client.place.DetailsPlace;
23 import org.glom.web.client.ui.ListView.Presenter;
24 import org.glom.web.client.ui.list.ListTable;
26 import com.google.gwt.cell.client.ButtonCell;
27 import com.google.gwt.cell.client.ValueUpdater;
28 import com.google.gwt.dom.client.Element;
29 import com.google.gwt.dom.client.NativeEvent;
30 import com.google.gwt.safehtml.shared.SafeHtml;
31 import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
34 * Cell renderer for {@link ListTable} open buttons.
36 * @author Ben Konrath <ben@bagu.org>
39 public class OpenButtonCell extends ButtonCell {
40 private String documentID;
41 private String tableName;
42 private Presenter presenter;
44 public OpenButtonCell(String documentID, String tableName, Presenter presenter) {
45 this.documentID = documentID;
46 this.tableName = tableName;
47 this.presenter = presenter;
53 * @see com.google.gwt.cell.client.ButtonCell#onEnterKeyDown(com.google.gwt.cell.client.Cell.Context,
54 * com.google.gwt.dom.client.Element, java.lang.String, com.google.gwt.dom.client.NativeEvent,
55 * com.google.gwt.cell.client.ValueUpdater)
58 protected void onEnterKeyDown(Context context, Element parent, String value, NativeEvent event,
59 ValueUpdater<String> valueUpdater) {
60 super.onEnterKeyDown(context, parent, value, event, valueUpdater);
61 presenter.goTo(new DetailsPlace(documentID, tableName, (String) context.getKey()));
67 * @see com.google.gwt.cell.client.ButtonCell#render(com.google.gwt.cell.client.Cell.Context,
68 * com.google.gwt.safehtml.shared.SafeHtml, com.google.gwt.safehtml.shared.SafeHtmlBuilder)
71 public void render(Context context, SafeHtml data, SafeHtmlBuilder sb) {
73 // The value is from an empty row.
74 sb.appendHtmlConstant(" ");
76 super.render(context, data, sb);