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.place;
22 import java.util.HashMap;
24 import org.glom.web.client.StringUtils;
26 import com.google.gwt.place.shared.PlaceTokenizer;
27 import com.google.gwt.place.shared.Prefix;
29 public class ReportPlace extends HasRecordsPlace {
31 private final String reportName;
33 public ReportPlace(final String documentID, final String tableName, final String reportName, final String quickFind) {
34 super(documentID, tableName, quickFind);
35 this.reportName = reportName;
38 public String getReportName() {
43 public static class Tokenizer extends HasRecordsPlace.Tokenizer implements PlaceTokenizer<ReportPlace> {
44 protected final String reportKey = "report";
47 public String getToken(final ReportPlace place) {
48 final HashMap<String, String> params = new HashMap<String, String>();
49 params.put(documentKey, place.getDocumentID());
50 params.put(tableKey, place.getTableName());
51 params.put(reportKey, place.getReportName());
52 params.put(quickFindKey, place.getQuickFind());
53 return buildParamsToken(params);
57 public ReportPlace getPlace(final String token) {
58 // default empty values
59 String documentID = "";
60 String tableName = ""; // an empty value represents the default table
61 String reportName = "";
62 String quickFind = "";
64 final HashMap<String, String> params = getTokenParams(token);
67 return new ReportPlace("", "", "", "");
70 if (params.get(documentKey) != null) {
71 documentID = params.get(documentKey);
74 if (params.get(tableKey) != null) {
75 tableName = params.get(tableKey);
78 if (params.get(quickFindKey) != null) {
79 quickFind = params.get(quickFindKey);
82 if (params.get(reportKey) != null) {
83 reportName = params.get(reportKey);
86 if (StringUtils.isEmpty(documentID)) {
87 // The documentID was not retrieved from the URL. Use empty values for the list place.
88 return new ReportPlace("", "", "", "");
91 return new ReportPlace(documentID, tableName, reportName, quickFind);