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 {
8 private static final long serialVersionUID = 751801531875664661L;
9 private UsesRelationship usesRel = new UsesRelationshipImpl();
11 public enum NavigationType {
12 NAVIGATION_NONE, NAVIGATION_AUTOMATIC, NAVIGATION_SPECIFIC
15 private NavigationType navigationType = NavigationType.NAVIGATION_AUTOMATIC;
16 private UsesRelationship navigationRelationshipSpecific = null;
17 private boolean addNavigation = false;
22 public String getFromField() {
23 String from_table = null;
25 final Relationship relationship = getRelationship();
26 if (relationship != null) {
27 from_table = relationship.getFromTable();
37 * org.glom.web.shared.libglom.layout.UsesRelationship#setRelationship(org.glom.web.shared.libglom.Relationship)
40 public void setRelationship(Relationship relationship) {
41 usesRel.setRelationship(relationship);
47 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getRelationship()
50 public Relationship getRelationship() {
51 return usesRel.getRelationship();
57 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getHasRelationshipName()
60 public boolean getHasRelationshipName() {
61 return usesRel.getHasRelationshipName();
68 * org.glom.web.shared.libglom.layout.UsesRelationship#setRelatedRelationship(org.glom.web.shared.libglom.Relationship
72 public void setRelatedRelationship(Relationship relationship) {
73 usesRel.setRelatedRelationship(relationship);
79 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getRelatedRelationship()
82 public Relationship getRelatedRelationship() {
83 return usesRel.getRelatedRelationship();
89 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getHasRelatedRelationshipName()
92 public boolean getHasRelatedRelationshipName() {
93 return usesRel.getHasRelatedRelationshipName();
99 * @see org.glom.web.shared.libglom.layout.UsesRelationship#get_sql_join_alias_name()
102 public String getSqlJoinAliasName() {
103 return usesRel.getSqlJoinAliasName();
109 * @see org.glom.web.shared.libglom.layout.UsesRelationship#get_sql_table_or_join_alias_name(java.lang.String)
112 public String getSqlTableOrJoinAliasName(String tableName) {
113 return usesRel.getSqlTableOrJoinAliasName(tableName);
119 * @see org.glom.web.shared.libglom.layout.UsesRelationship#get_table_used(java.lang.String)
122 public String getTableUsed(String parentTable) {
123 return usesRel.getTableUsed(parentTable);
129 public NavigationType getNavigationType() {
130 return navigationType;
134 * @param navigationAutomatic
136 public void setNavigationType(NavigationType navigationType) {
137 this.navigationType = navigationType;
143 public UsesRelationship getNavigationRelationshipSpecific() {
144 if (getNavigationType() == NavigationType.NAVIGATION_SPECIFIC)
145 return navigationRelationshipSpecific;
153 public void setNavigationRelationshipSpecific(UsesRelationship relationship) {
154 navigationRelationshipSpecific = relationship;
155 navigationType = NavigationType.NAVIGATION_SPECIFIC;
158 // TODO: Where is getAddNavigation?
160 * Whether the UI should show a navigation button. TODO: Remove this?
164 public void setAddNavigation(boolean addNavigation) {
165 this.addNavigation = addNavigation;
171 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getRelationshipNameUsed()
174 public String getRelationshipNameUsed() {
175 return usesRel.getRelationshipNameUsed();
179 public String getTitleOriginal() {
180 String title = getTitleUsed("" /* parent table - not relevant */, "" /* locale */);
181 if (StringUtils.isEmpty(title)) // TODO: This prevents "" as a real title.
182 title = "Undefined Table";
188 public String getTitle(final String locale) {
189 String title = getTitleUsed("" /* parent table - not relevant */, locale);
190 if (StringUtils.isEmpty(title)) // TODO: This prevents "" as a real title.
191 title = "Undefined Table";
197 public String getTitleOrName(final String locale) {
198 String title = getTitleUsed("" /* parent table - not relevant */, locale);
199 if (StringUtils.isEmpty(title)) // TODO: This prevents "" as a real title.
200 title = getRelationshipNameUsed();
202 if (StringUtils.isEmpty(title)) // TODO: This prevents "" as a real title.
203 title = "Undefined Table";
211 * @see org.glom.web.shared.libglom.layout.UsesRelationship#getTitleUsed(java.lang.String, java.lang.String)
214 public String getTitleUsed(String parentTableTitle, String locale) {
215 return usesRel.getTitleUsed(parentTableTitle, locale);