1 package org.glom.web.shared.libglom.layout;
3 import org.glom.web.client.StringUtils;
4 import org.glom.web.shared.libglom.Relationship;
6 public class LayoutItemPortal extends LayoutGroup implements UsesRelationship {
7 private static final long serialVersionUID = 4952677991725269830L;
10 * Don't make this final, because that breaks GWT serialization. See
11 * http://code.google.com/p/google-web-toolkit/issues/detail?id=1054
13 private/* final */UsesRelationship usesRel = new UsesRelationshipImpl();
15 public enum NavigationType {
16 NAVIGATION_NONE, NAVIGATION_AUTOMATIC, NAVIGATION_SPECIFIC
19 private NavigationType navigationType = NavigationType.NAVIGATION_AUTOMATIC;
20 private UsesRelationship navigationRelationshipSpecific = null;
25 public String getFromField() {
28 final Relationship relationship = getRelationship();
29 if (relationship != null) {
30 result = relationship.getFromField();
40 * org.glom.web.shared.libglom.layout.UsesRelationship#setRelationship(org.glom.web.shared.libglom.Relationship)
43 public void setRelationship(final Relationship relationship) {
44 usesRel.setRelationship(relationship);
50 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getRelationship()
53 public Relationship getRelationship() {
54 return usesRel.getRelationship();
60 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getHasRelationshipName()
63 public boolean getHasRelationshipName() {
64 return usesRel.getHasRelationshipName();
71 * org.glom.web.shared.libglom.layout.UsesRelationship#setRelatedRelationship(org.glom.web.shared.libglom.Relationship
75 public void setRelatedRelationship(final Relationship relationship) {
76 usesRel.setRelatedRelationship(relationship);
82 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getRelatedRelationship()
85 public Relationship getRelatedRelationship() {
86 return usesRel.getRelatedRelationship();
92 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getHasRelatedRelationshipName()
95 public boolean getHasRelatedRelationshipName() {
96 return usesRel.getHasRelatedRelationshipName();
102 * @see org.glom.web.shared.libglom.layout.UsesRelationship#get_sql_join_alias_name()
105 public String getSqlJoinAliasName() {
106 return usesRel.getSqlJoinAliasName();
112 * @see org.glom.web.shared.libglom.layout.UsesRelationship#get_sql_table_or_join_alias_name(java.lang.String)
115 public String getSqlTableOrJoinAliasName(final String tableName) {
116 return usesRel.getSqlTableOrJoinAliasName(tableName);
122 * @see org.glom.web.shared.libglom.layout.UsesRelationship#get_table_used(java.lang.String)
125 public String getTableUsed(final String parentTable) {
126 return usesRel.getTableUsed(parentTable);
132 public NavigationType getNavigationType() {
133 return navigationType;
137 * @param navigationAutomatic
139 public void setNavigationType(final NavigationType navigationType) {
140 this.navigationType = navigationType;
146 public UsesRelationship getNavigationRelationshipSpecific() {
147 if (getNavigationType() == NavigationType.NAVIGATION_SPECIFIC) {
148 return navigationRelationshipSpecific;
157 public void setNavigationRelationshipSpecific(final UsesRelationship relationship) {
158 navigationRelationshipSpecific = relationship;
159 navigationType = NavigationType.NAVIGATION_SPECIFIC;
165 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getRelationshipNameUsed()
168 public String getRelationshipNameUsed() {
169 return usesRel.getRelationshipNameUsed();
173 public String getTitleOriginal() {
174 String title = getTitleUsed("" /* parent table - not relevant */, "" /* locale */);
175 if (StringUtils.isEmpty(title)) {
176 title = "Undefined Table";
183 public String getTitle(final String locale) {
184 String title = getTitleUsed("" /* parent table - not relevant */, locale);
185 if (StringUtils.isEmpty(title)) {
186 title = "Undefined Table";
193 public String getTitleOrName(final String locale) {
194 String title = getTitleUsed("" /* parent table - not relevant */, locale);
195 if (StringUtils.isEmpty(title)) {
196 title = getRelationshipNameUsed();
199 if (StringUtils.isEmpty(title)) {
200 title = "Undefined Table";
209 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getTitleUsed(java.lang.String, java.lang.String)
212 public String getTitleUsed(final String parentTableTitle, final String locale) {
213 return usesRel.getTitleUsed(parentTableTitle, locale);