On Tue, Dec 28, 2010 at 9:20 AM, Levend Sayar <[email protected]> wrote:
> George, I need to know what I am doing in sipxconfig as soon as possible.
> Many technologies are used in there.
> Do you suggest something to me for gathering enough knowledge to feel
> comfortable a little bit with sipxconfig source code ?
> Unfortunately I could not progress in this issue as much as I want.
>

Please find attached a patch with some fixes
- UGB class should not be abstract
- use ognl to call methods from backing java file e.g.
<td jwcid="seria...@textfield" id="ugb:serialno"
          value="ognl:ugb.data"
          displayName="message:ugb.serialno"/>

A quick explanation: there are not so many technologies but layer
decoupling following J2EE patterns - basically there is Tapestry and
Spring, Spring is used for business layer, Tapestry for presentation
layer. Tapestry renders html page, Spring holds all the business logic
(can be reused, exposed in web services, etc.). In the attached patch
the business logic resides in UGB class, so you declare it as a spring
bean:

<bean id="ugb" class="org.sipfoundry.sipxconfig.common.UGB"/>

then you inject the Spring bean in Tapestry backing class UgbPage as:

    @InjectObject(value = "spring:ugb")
    public abstract UGB getUgb();

then you display the value using ognl (ognl:ugb.data can be translated
in UgbPage.getUgb().getData() )

<td jwcid="seria...@textfield" id="ugb:serialno"
          value="ognl:ugb.data"
          displayName="message:ugb.serialno"/>

However the licensing stuff should reside in your plugin and not in
open source project - we need to extend sipXconfig plugins to
contribute with own pages and menu entries
(http://track.sipfoundry.org/browse/XX-9311)

George
From c28e621951dfe0df84946109d9cd08666a00f14c Mon Sep 17 00:00:00 2001
From: George Niculae <[email protected]>
Date: Tue, 28 Dec 2010 13:14:56 +0200
Subject: [PATCH] License page

---
 .../src/org/sipfoundry/sipxconfig/common/UGB.java  |   13 ++++++++
 .../sipfoundry/sipxconfig/common/common.beans.xml  |    2 +
 .../web/context/WEB-INF/admin/ugb/UgbPage.html     |   33 ++++++++++++++++++++
 .../web/context/WEB-INF/admin/ugb/UgbPage.page     |    6 +++
 .../context/WEB-INF/admin/ugb/UgbPage.properties   |    9 +++++
 .../context/WEB-INF/common/AdminNavigation.html    |    9 +++++
 .../WEB-INF/common/AdminNavigation.properties      |    2 +
 .../sipxconfig/site/admin/ugb/UgbPage.java         |   30 ++++++++++++++++++
 8 files changed, 104 insertions(+), 0 deletions(-)
 create mode 100644 sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/UGB.java
 create mode 100644 sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.html
 create mode 100644 sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.page
 create mode 100644 sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.properties
 create mode 100644 sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ugb/UgbPage.java

diff --git a/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/UGB.java b/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/UGB.java
new file mode 100644
index 0000000..5fc9e2e
--- /dev/null
+++ b/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/UGB.java
@@ -0,0 +1,13 @@
+package org.sipfoundry.sipxconfig.common;
+
+public class UGB {
+   public String m_data;
+   
+   public UGB () {
+       m_data = "Hello";
+   }
+   
+   public String getData() {
+       return m_data;
+   }
+}
\ No newline at end of file
diff --git a/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/common.beans.xml b/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/common.beans.xml
index 41a2848..13442c8 100644
--- a/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/common.beans.xml
+++ b/sipXconfig/neoconf/src/org/sipfoundry/sipxconfig/common/common.beans.xml
@@ -96,4 +96,6 @@
     <property name="coreContext" ref="coreContext"/>
     <property name="mailboxManager" ref="mailboxManager"/>
   </bean>
+
+  <bean id="ugb" class="org.sipfoundry.sipxconfig.common.UGB"/>
 </beans>
diff --git a/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.html b/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.html
new file mode 100644
index 0000000..a7d1050
--- /dev/null
+++ b/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.html
@@ -0,0 +1,33 @@
+<div jwcid="@common/Border" useDojo="true" borderTitle="ognl:borderTitle">
+  <span jwcid="@common/TabNavigation" tabNames="ognl:{'ugb', 'users', 'webcm'}" selectedTab="ognl:tab"/>
+  <div id="settings-content">
+    <span jwcid="@common/ErrorMsg"/>
+    <span jwcid="@RenderBlock" block="ognl:components.get(tab + 'Tab')"/>
+  </div>
+  <div jwcid="ugb...@block">
+    <span jwcid="@common/QuickHelp" value="message:quick.help.ugbTab" />
+    <form jwcid="ugbf...@form" id="ugbForm">
+      <table>
+      <tr jwcid="@common/FieldPanel" for="ugb:serialno"
+        field="component:serialno"
+        label="message:ugb.serialno">
+        <td jwcid="seria...@textfield" id="ugb:serialno"
+          value="ognl:ugb.data"
+          displayName="message:ugb.serialno"/>
+      </tr>
+    </table>
+    </form>
+  </div>
+  <div jwcid="users...@block">
+    <span jwcid="@common/QuickHelp" value="message:quick.help.usersTab" />
+    <form jwcid="usersf...@form" id="usersForm">
+      USERS TAB
+    </form>
+  </div>
+  <div jwcid="webcm...@block">
+    <span jwcid="@common/QuickHelp" value="message:quick.help.webcmTab" />
+    <form jwcid="webcmf...@form" id="webcmForm">
+      WEBCM TAB
+    </form>
+  </div>
+</div>
\ No newline at end of file
diff --git a/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.page b/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.page
new file mode 100644
index 0000000..753b3dc
--- /dev/null
+++ b/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.page
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
+  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";>
+<page-specification class="org.sipfoundry.sipxconfig.site.admin.ugb.UgbPage">
+  <description>Licensing</description>
+</page-specification>
\ No newline at end of file
diff --git a/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.properties b/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.properties
new file mode 100644
index 0000000..a191c21
--- /dev/null
+++ b/sipXconfig/web/context/WEB-INF/admin/ugb/UgbPage.properties
@@ -0,0 +1,9 @@
+title=Licensing Page
+tab.ugb=UGB
+tab.users=Users
+tab.webcm=Web-CM
+quick.help.ugbTab=UGB serial no and firmware version
+quick.help.usersTab=Maximum user count 
+quick.help.webcmTab=Web-CM support
+ugb.serialno=Serial Number
+ugb.version=Firmware version
\ No newline at end of file
diff --git a/sipXconfig/web/context/WEB-INF/common/AdminNavigation.html b/sipXconfig/web/context/WEB-INF/common/AdminNavigation.html
index 8d07a55..e6c9325 100644
--- a/sipXconfig/web/context/WEB-INF/common/AdminNavigation.html
+++ b/sipXconfig/web/context/WEB-INF/common/AdminNavigation.html
@@ -111,5 +111,14 @@
 				</ul>
 			</div>
 		</li>
+		<li>
+	  		<div class="roundedMainSectionBoxTopLeft"></div><div class="roundedMainSectionBoxTopRight"></div>
+	  		<div class="roundedMainSectionBoxInside">
+	    		<a class="heading"><span key="menu.section.ugbMenu">Licensing</span></a>
+	      		<ul>
+					<li><a jwcid="@PageLink" id="menu.ugbPage" page="admin/ugb/UgbPage"><span key="menu.ugbPage">License Info</span></a></li>
+	      		</ul>
+	  		</div>
+		</li>
 	</ul>
 </div>
diff --git a/sipXconfig/web/context/WEB-INF/common/AdminNavigation.properties b/sipXconfig/web/context/WEB-INF/common/AdminNavigation.properties
index ed9ec7c..a85744b 100644
--- a/sipXconfig/web/context/WEB-INF/common/AdminNavigation.properties
+++ b/sipXconfig/web/context/WEB-INF/common/AdminNavigation.properties
@@ -58,3 +58,5 @@ menu.users=Users
 menu.tlspeers=TLS Peers
 menu.authcodes=Authorization Codes
 menu.openAcd=Call Center
+menu.section.ugbMenu=Licensing
+menu.ugbPage=License Info
diff --git a/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ugb/UgbPage.java b/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ugb/UgbPage.java
new file mode 100644
index 0000000..a6a48a9
--- /dev/null
+++ b/sipXconfig/web/src/org/sipfoundry/sipxconfig/site/admin/ugb/UgbPage.java
@@ -0,0 +1,30 @@
+package org.sipfoundry.sipxconfig.site.admin.ugb;
+
+import org.sipfoundry.sipxconfig.components.TapestryUtils;
+import org.apache.tapestry.annotations.Bean;
+import org.apache.tapestry.annotations.InitialValue;
+import org.apache.tapestry.annotations.Persist;
+import org.apache.tapestry.annotations.InjectObject;
+import org.sipfoundry.sipxconfig.components.SipxBasePage;
+import org.sipfoundry.sipxconfig.components.SipxValidationDelegate;
+import org.apache.tapestry.event.PageEvent;
+import org.sipfoundry.sipxconfig.common.UGB;
+
+public abstract class UgbPage extends SipxBasePage {
+
+    @Bean
+    public abstract SipxValidationDelegate getValidator();
+
+    @Persist
+    @InitialValue("literal:first")
+    public abstract String getTab();
+    
+    @InjectObject(value = "spring:ugb")
+    public abstract UGB getUgb();
+
+    public void pageBeginRender(PageEvent event) {
+        if (!TapestryUtils.isValid(this)) {
+            return;
+        }
+    }
+}
\ No newline at end of file
-- 
1.7.2.3

_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev/

Reply via email to