Introduce publishing styles.
[gpl/argeo-suite.git] / publishing / org.argeo.publishing.ui / src / org / argeo / publishing / ui / PublishingApp.java
index 00deae94af9ddc38ce3e044c5d48a5af987ad3a3..22bd2bbe18d06b93b7a633ac9b2d7b4fc34f478e 100644 (file)
@@ -13,6 +13,7 @@ import org.apache.commons.logging.LogFactory;
 import org.argeo.api.NodeUtils;
 import org.argeo.cms.ui.AbstractCmsApp;
 import org.argeo.cms.ui.CmsApp;
+import org.argeo.cms.ui.CmsUiProvider;
 import org.argeo.docbook.ui.DocBookTypes;
 import org.argeo.docbook.ui.DocumentPage;
 import org.argeo.jcr.Jcr;
@@ -32,6 +33,8 @@ public class PublishingApp extends AbstractCmsApp {
        private String pid;
        private String defaultThemeId;
 
+       private CmsUiProvider landingPage;
+
        public void init(Map<String, String> properties) {
                defaultThemeId = properties.get("defaultThemeId");
                pid = properties.get(Constants.SERVICE_PID);
@@ -63,7 +66,13 @@ public class PublishingApp extends AbstractCmsApp {
                } catch (RepositoryException e) {
                        throw new IllegalStateException(e);
                }
-               Control page = new DocumentPage().createUiPart(parent, indexNode);
+
+               Control page;
+               if (landingPage != null) {
+                       page = landingPage.createUiPart(parent, indexNode);
+               } else {
+                       page = new DocumentPage().createUiPart(parent, indexNode);
+               }
                return (Composite) page;
        }
 
@@ -82,4 +91,9 @@ public class PublishingApp extends AbstractCmsApp {
        protected String getThemeId(String uiName) {
                return defaultThemeId;
        }
+
+       public void setLandingPage(CmsUiProvider landingPage) {
+               this.landingPage = landingPage;
+       }
+
 }