You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ca...@apache.org on 2012/02/22 17:54:43 UTC

svn commit: r1292396 - in /incubator/rave/trunk: rave-components/rave-core/src/main/java/org/apache/rave/portal/model/ rave-portal-resources/src/main/webapp/WEB-INF/db/

Author: carlucci
Date: Wed Feb 22 16:54:42 2012
New Revision: 1292396

URL: http://svn.apache.org/viewvc?rev=1292396&view=rev
Log:
Code in support of RAVE-475: Create person profile page off of a template
- applying Aaron Gooch's contribution of the PageTemplate, PageTemplateRegion, and PageTemplateWidget models

Added:
    incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
    incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateRegion.java
    incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateWidget.java
Modified:
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/db/initial_data.sql

Added: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java?rev=1292396&view=auto
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java (added)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplate.java Wed Feb 22 16:54:42 2012
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.portal.model;
+
+import org.apache.rave.persistence.BasicEntity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.List;
+
+@Entity
+@Table(name="page_template")
+@NamedQueries({
+        @NamedQuery(name = "PageTemplate.findByPageTemplateId", query = "SELECT p FROM PageTemplate p WHERE p.entityId = :id"),
+        @NamedQuery(name = "PageTemplate.findAll", query = "SELECT p FROM PageTemplate p ORDER BY p.renderSequence, p.title")
+})
+@Access(AccessType.FIELD)
+public class PageTemplate implements BasicEntity, Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name="entity_id")
+    @GeneratedValue(strategy = GenerationType.TABLE, generator = "pageTemplateIdGenerator")
+    @TableGenerator(name = "pageTemplateIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
+            valueColumnName = "SEQ_COUNT", pkColumnValue = "page_template", allocationSize = 1, initialValue = 1)
+    private Long entityId;
+
+    @Basic @Column(name="title", unique = false)
+    private String title;
+    
+    @Basic @Column(name="description", unique = false)
+    private String description;
+
+    @Basic(optional = false)
+    @Column(name="page_type", unique = false)
+    @Enumerated(EnumType.STRING)
+    private PageType pageType;
+
+    @OneToOne(cascade=CascadeType.ALL)
+    @JoinColumn(name="parent_page_template_id")
+    private PageTemplate parentPageTemplate;
+
+    @OneToMany(fetch = FetchType.EAGER, cascade=CascadeType.ALL, mappedBy="parentPageTemplate")
+    private List<PageTemplate> subPageTemplates;
+
+    @ManyToOne
+    @JoinColumn(name = "page_layout_id")
+    private PageLayout pageLayout;
+
+    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
+    @OrderBy("renderSequence")
+    @JoinColumn(name="page_template_id")
+    private List<PageTemplateRegion> pageTemplateRegions;
+
+    @Basic(optional = false)
+    @Column(name = "render_sequence")
+    private long renderSequence;
+
+    @Basic(optional = false)
+    @Column(name = "default_template")
+    private boolean defaultTemplate;
+
+    @Override
+    public Long getEntityId() {
+        return entityId;
+    }
+
+    @Override
+    public void setEntityId(Long entityId) {
+        this.entityId = entityId;
+    }
+
+    public PageType getPageType() {
+        return pageType;
+    }
+
+    public void setPageType(PageType pageType) {
+        this.pageType = pageType;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public PageTemplate getParentPageTemplate() {
+        return parentPageTemplate;
+    }
+
+    public void setParentPageTemplate(PageTemplate parentPageTemplate) {
+        this.parentPageTemplate =  parentPageTemplate;
+    }
+
+    public PageLayout getPageLayout() {
+        return pageLayout;
+    }
+
+    public void setPageLayout(PageLayout pageLayout) {
+        this.pageLayout = pageLayout;
+    }
+
+    public List<PageTemplateRegion> getPageTemplateRegions() {
+        return pageTemplateRegions;
+    }
+
+    public void setPageTemplateRegions(List<PageTemplateRegion> pageTemplateRegions) {
+        this.pageTemplateRegions = pageTemplateRegions;
+    }
+
+    public long getRenderSequence() {
+        return renderSequence;
+    }
+
+    public void setRenderSequence(long renderSequence) {
+        this.renderSequence = renderSequence;
+    }
+
+    public boolean isDefaultTemplate() {
+        return defaultTemplate;
+    }
+
+    public void setDefaultTemplate(boolean defaultTemplate) {
+        this.defaultTemplate = defaultTemplate;
+    }
+
+    public List<PageTemplate> getSubPageTemplates() {
+        return subPageTemplates;
+    }
+
+    public void setSubPageTemplates(List<PageTemplate> subPageTemplates) {
+        this.subPageTemplates = subPageTemplates;
+    }    
+}

Added: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateRegion.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateRegion.java?rev=1292396&view=auto
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateRegion.java (added)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateRegion.java Wed Feb 22 16:54:42 2012
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.rave.portal.model;
+
+import org.apache.rave.persistence.BasicEntity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.List;
+
+@Entity
+@Table(name = "page_template_region")
+@NamedQueries({
+        @NamedQuery(name = "PageTemplateRegion.findAll", query = "SELECT p FROM PageTemplateRegion p"),
+        @NamedQuery(name = "PageTemplateRegion.findByPageTemplateRegionId", query = "SELECT p FROM PageTemplateRegion p WHERE p.entityId = :id")
+})
+@Access(AccessType.FIELD)
+public class PageTemplateRegion implements BasicEntity, Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name="entity_id")
+    @GeneratedValue(strategy = GenerationType.TABLE, generator = "pageTemplateRegionIdGenerator")
+    @TableGenerator(name = "pageTemplateRegionIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
+            valueColumnName = "SEQ_COUNT", pkColumnValue = "page_template_region", allocationSize = 1, initialValue = 1)
+    private Long entityId;
+
+    @Basic(optional = false)
+    @Column(name = "render_sequence")
+    private long renderSequence;
+
+    @JoinColumn(name = "page_template_id")
+    @ManyToOne(optional = false)
+    private PageTemplate pageTemplate;
+
+    @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
+    @OrderBy("renderSequence")
+    @JoinColumn(name = "page_template_region_id")
+    private List<PageTemplateWidget> pageTemplateWidgets;
+
+    @Override
+    public Long getEntityId() {
+        return entityId;
+    }
+
+    @Override
+    public void setEntityId(Long entityId) {
+        this.entityId = entityId;
+    }
+
+    public long getRenderSequence() {
+        return renderSequence;
+    }
+
+    public void setRenderSequence(long renderSequence) {
+        this.renderSequence = renderSequence;
+    }
+
+    public PageTemplate getPageTemplate() {
+        return pageTemplate;
+    }
+
+    public void setPageTemplate(PageTemplate pageTemplate) {
+        this.pageTemplate = pageTemplate;
+    }
+
+    public List<PageTemplateWidget> getPageTemplateWidgets() {
+        return pageTemplateWidgets;
+    }
+
+    public void setPageTemplateWidgets(List<PageTemplateWidget> pageTemplateWidgets) {
+        this.pageTemplateWidgets = pageTemplateWidgets;
+    }
+}

Added: incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateWidget.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateWidget.java?rev=1292396&view=auto
==============================================================================
--- incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateWidget.java (added)
+++ incubator/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/PageTemplateWidget.java Wed Feb 22 16:54:42 2012
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rave.portal.model;
+
+import org.apache.rave.persistence.BasicEntity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+@Entity
+@Table(name= "page_template_widget")
+@NamedQueries({
+        @NamedQuery(name = "PageTemplateGadget.findAll", query = "SELECT p FROM PageTemplateWidget p"),
+        @NamedQuery(name = "PageTemplateGadget.findByPageTemplateGadgetId", query = "SELECT p FROM PageTemplateWidget p WHERE p.entityId = :id")
+})
+@Access(AccessType.FIELD)
+public class PageTemplateWidget implements BasicEntity, Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @Column(name="entity_id")
+    @GeneratedValue(strategy = GenerationType.TABLE, generator = "pageTemplateWidgetIdGenerator")
+    @TableGenerator(name = "pageTemplateWidgetIdGenerator", table = "RAVE_PORTAL_SEQUENCES", pkColumnName = "SEQ_NAME",
+            valueColumnName = "SEQ_COUNT", pkColumnValue = "page_template_widget", allocationSize = 1, initialValue = 1)
+    private Long entityId;
+
+    @JoinColumn(name = "page_template_region_id")
+    @ManyToOne(optional = false)
+    private PageTemplateRegion pageTemplateRegion;
+
+    @Basic(optional = false)
+    @Column(name = "render_sequence")
+    private long renderSequence;
+
+    @JoinColumn(name = "widget_id")
+    @ManyToOne(optional = false)
+    private Widget widget;
+
+    @Override
+    public Long getEntityId() {
+        return entityId;
+    }
+
+    @Override
+    public void setEntityId(Long entityId) {
+        this.entityId = entityId;
+    }
+
+    public PageTemplateRegion getPageTemplateRegion() {
+        return pageTemplateRegion;
+    }
+
+    public void setPageTemplateRegion(PageTemplateRegion pageTemplateRegion) {
+        this.pageTemplateRegion = pageTemplateRegion;
+    }
+
+    public long getRenderSeq() {
+        return renderSequence;
+    }
+
+    public void setRenderSeq(long renderSeq) {
+        this.renderSequence = renderSeq;
+    }
+
+    public Widget getWidget() {
+        return widget;
+    }
+
+    public void setWidget(Widget widget) {
+        this.widget = widget;
+    }
+}

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/db/initial_data.sql
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/db/initial_data.sql?rev=1292396&r1=1292395&r2=1292396&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/db/initial_data.sql (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/db/initial_data.sql Wed Feb 22 16:54:42 2012
@@ -40,6 +40,9 @@ set @portal_preference_seq = 'portal_pre
 set @tag_seq = 'tag';
 set @widget_tag_seq = 'widget_tag';
 set @category_seq = 'category';
+set @page_template_seq = 'page_template';
+set @page_template_region_seq = 'page_template_region';
+set @page_template_widget_seq = 'page_template_widget';
 
 CREATE TABLE IF NOT EXISTS RAVE_PORTAL_SEQUENCES (seq_name VARCHAR(255) PRIMARY KEY NOT NULL, seq_count BIGINT(19));
 INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_seq, 1);
@@ -59,6 +62,9 @@ INSERT INTO RAVE_PORTAL_SEQUENCES(seq_na
 INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@tag_seq, 1);
 INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@widget_tag_seq, 1);
 INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@category_seq, 1);
+INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_template_seq, 1);
+INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_template_region_seq, 1);
+INSERT INTO RAVE_PORTAL_SEQUENCES(seq_name, seq_count) values (@page_template_widget_seq, 1);
 
   -- ***********************************************************************************
   -- start page layout data, required to make the portal work ---
@@ -989,3 +995,76 @@ values (@wikipedia_widget_id, @category_
 
 insert into widget_category (widget_id, category_id)
 values (@nyt_widget_id, @category_id2);
+
+----------------------------------------
+-- person profile parent page templates
+----------------------------------------
+-- page
+set @person_profile_page_template_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_seq);
+insert into page_template (entity_id, page_type, page_layout_id, title, description, parent_page_template_id, render_sequence, default_template)
+values (@person_profile_page_template_id, 'PERSON_PROFILE', @person_profile_layout_id, 'Person Profile', 'Template for person profile pages', null, 0, true);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_seq;
+
+-- regions
+set @person_profile_page_template_region_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_region_seq);
+insert into page_template_region (entity_id, render_sequence, page_template_id)
+values (@person_profile_page_template_region_id, 0, @person_profile_page_template_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_region_seq;
+
+-- widgets
+set @next_person_profile_page_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id)
+values (@next_person_profile_page_template_widget_id, @person_profile_page_template_region_id, 0, @my_groups_widget_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq;
+
+set @next_person_profile_page_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id)
+values (@next_person_profile_page_template_widget_id, @person_profile_page_template_region_id, 1, @work_experience_widget_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq;
+
+------------------------------------------
+-- person profile about sub page templates
+------------------------------------------
+-- page
+set @person_profile_subpage1_template_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_seq);
+insert into page_template (entity_id, page_type, page_layout_id, title, description, parent_page_template_id, render_sequence, default_template)
+values (@person_profile_subpage1_template_id, 'SUB_PAGE', @one_col_id, 'About', 'Template for the About sub page for the person profile', @person_profile_page_template_id, 0, false);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_seq;
+
+-- regions
+set @person_profile_subpage1_template_region_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_region_seq);
+insert into page_template_region (entity_id, render_sequence, page_template_id)
+values (@person_profile_subpage1_template_region_id, 0, @person_profile_subpage1_template_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_region_seq;
+
+-- widgets
+set @next_person_profile_subpage1_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id)
+values (@next_person_profile_subpage1_template_widget_id, @person_profile_subpage1_template_region_id, 0, @favorite_websites_widget_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq;
+
+set @next_person_profile_subpage1_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id)
+values (@next_person_profile_subpage1_template_widget_id, @person_profile_subpage1_template_region_id, 1, @schedule_widget_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq;
+
+--------------------------------------------------
+-- person profile my activities sub page templates
+--------------------------------------------------
+-- page
+set @person_profile_subpage2_template_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_seq);
+insert into page_template (entity_id, page_type, page_layout_id, title, description, parent_page_template_id, render_sequence, default_template)
+values (@person_profile_subpage2_template_id, 'SUB_PAGE', @one_col_id, 'My Activity', 'Template for the My Activity sub page for the person profile', @person_profile_page_template_id, 1, false);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_seq;
+
+-- regions
+set @person_profile_subpage2_template_region_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_region_seq);
+insert into page_template_region (entity_id, render_sequence, page_template_id)
+values (@person_profile_subpage2_template_region_id, 0, @person_profile_subpage2_template_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_region_seq;
+
+-- widgets
+set @next_person_profile_subpage2_template_widget_id = (SELECT seq_count FROM RAVE_PORTAL_SEQUENCES WHERE seq_name = @page_template_widget_seq);
+insert into page_template_widget (entity_id, page_template_region_id, render_sequence, widget_id)
+values (@next_person_profile_subpage2_template_widget_id, @person_profile_subpage2_template_region_id, 0, @my_activity_widget_id);
+UPDATE RAVE_PORTAL_SEQUENCES SET seq_count = (seq_count + 1) WHERE seq_name = @page_template_widget_seq;