Add the table name to the URL token for the ListPlace.
[online-glom:gwt-glom.git] / src / main / java / org / glom / web / client / place / ListPlace.java
1 /*
2  * Copyright (C) 2011 Openismus GmbH
3  *
4  * This file is part of GWT-Glom.
5  *
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.
10  *
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
14  * for more details.
15  *
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/>.
18  */
19
20 package org.glom.web.client.place;
21
22 import com.google.gwt.place.shared.PlaceTokenizer;
23 import com.google.gwt.place.shared.Prefix;
24
25 public class ListPlace extends HasSelectableTablePlace {
26
27         public ListPlace(String documentID, String tableName) {
28                 super(documentID, tableName);
29         }
30
31         @Prefix("list")
32         public static class Tokenizer extends HasSelectableTablePlace.Tokenizer implements PlaceTokenizer<ListPlace> {
33
34                 @Override
35                 public String getToken(ListPlace place) {
36                         return documentKey + place.getDocumentID() + seperator + tableKey + place.getTableName();
37                 }
38
39                 @Override
40                 public ListPlace getPlace(String token) {
41                         String[] tokenArray = token.split(seperator);
42
43                         if (tokenArray.length != 2)
44                                 return new ListPlace("", "");
45
46                         String documentID = "", tableName = "";
47
48                         if (documentKey.equals(tokenArray[0].substring(0, documentKey.length()))) {
49                                 documentID = tokenArray[0].substring(documentKey.length());
50                         }
51
52                         if (tableKey.equals(tokenArray[1].substring(0, tableKey.length()))) {
53                                 tableName = tokenArray[1].substring(tableKey.length());
54                         }
55
56                         return new ListPlace(documentID, tableName);
57                 }
58         }
59
60 }