You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2005/05/13 17:06:40 UTC

svn commit: r170031 - in /lenya/trunk/src: java/org/apache/lenya/cms/ac/usecases/AddIPRange.java java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java webapp/WEB-INF/cocoon-xconf.xsl webapp/lenya/usecases/admin/ipRangeProfile.jx

Author: andreas
Date: Fri May 13 08:06:38 2005
New Revision: 170031

URL: http://svn.apache.org/viewcvs?rev=170031&view=rev
Log:
finished ipRangeProfile usecase

Added:
    lenya/trunk/src/webapp/lenya/usecases/admin/ipRangeProfile.jx
Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java
    lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java
    lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl

Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java?rev=170031&r1=170030&r2=170031&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java Fri May 13 08:06:38 2005
@@ -30,7 +30,6 @@
 import org.apache.lenya.ac.file.FileIPRangeManager;
 import org.apache.lenya.ac.impl.AbstractItem;
 import org.apache.lenya.cms.ac.usecases.IPRangeProfile.Part;
-import org.apache.lenya.cms.usecase.UsecaseException;
 
 /**
  * Usecase to add an IP range.
@@ -38,11 +37,9 @@
 public class AddIPRange extends AccessControlUsecase {
 
     /**
-     * Validates the request parameters.
-     * @throws UsecaseException if an error occurs.
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
      */
-    void validate() throws UsecaseException {
-
+    protected void doCheckExecutionConditions() throws Exception {
         String id = getParameterAsString(IPRangeProfile.ID);
 
         IPRange existingIPRange = getIpRangeManager().getIPRange(id);
@@ -56,14 +53,6 @@
         }
 
         IPRangeProfile.validateAddresses(this);
-
-    }
-
-    /**
-     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
-     */
-    protected void doCheckExecutionConditions() throws Exception {
-        validate();
     }
 
     /**
@@ -78,13 +67,13 @@
 
         IPRange ipRange = new FileIPRange(configDir, id);
         ContainerUtil.enableLogging(ipRange, getLogger());
-        
+
         ipRange.setName(name);
         ipRange.setDescription(description);
-        
+
         String networkString = "";
         String subnetString = "";
-        
+
         for (int i = 0; i < 4; i++) {
             if (i > 0) {
                 networkString += ".";
@@ -112,14 +101,11 @@
     protected void initParameters() {
         super.initParameters();
         List partNumbers = new ArrayList();
-        partNumbers.add(new Integer(0));
-        partNumbers.add(new Integer(1));
-        partNumbers.add(new Integer(2));
-        partNumbers.add(new Integer(3));
-        setParameter(IPRangeProfile.PART_NUMBERS, partNumbers);
         for (byte i = 0; i < 4; i++) {
             setParameter(IPRangeProfile.NETWORK_ADDRESS + "-" + i, new Part(i));
             setParameter(IPRangeProfile.SUBNET_MASK + "-" + i, new Part(i));
+            partNumbers.add(new Integer(i));
         }
+        setParameter(IPRangeProfile.PART_NUMBERS, partNumbers);
     }
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java?rev=170031&r1=170030&r2=170031&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java Fri May 13 08:06:38 2005
@@ -20,6 +20,8 @@
 package org.apache.lenya.cms.ac.usecases;
 
 import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.List;
 
 import org.apache.lenya.ac.IPRange;
 import org.apache.lenya.cms.usecase.AbstractUsecase;
@@ -37,6 +39,13 @@
     protected static final String PART_NUMBERS = "partNumbers";
 
     /**
+     * @see org.apache.lenya.cms.usecase.AbstractUsecase#doCheckExecutionConditions()
+     */
+    protected void doCheckExecutionConditions() throws Exception {
+        IPRangeProfile.validateAddresses(this);
+    }
+    
+    /**
      * @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
      */
     protected void doExecute() throws Exception {
@@ -44,10 +53,33 @@
 
         String name = getParameterAsString(NAME);
         String description = getParameterAsString(DESCRIPTION);
+        
+        IPRange ipRange = getIPRange();
+
+        ipRange.setName(name);
+        ipRange.setDescription(description);
+        
+        String networkString = "";
+        String subnetString = "";
+        
+        for (int i = 0; i < 4; i++) {
+            if (i > 0) {
+                networkString += ".";
+                subnetString += ".";
+            }
+            Part netPart = (Part) getParameter(IPRangeProfile.NETWORK_ADDRESS + "-" + i);
+            networkString += netPart.getValue();
+            Part subPart = (Part) getParameter(IPRangeProfile.SUBNET_MASK + "-" + i);
+            subnetString += subPart.getValue();
+        }
+
+        InetAddress networkAddress = InetAddress.getByName(networkString);
+        ipRange.setNetworkAddress(networkAddress.getAddress());
+
+        InetAddress subnetMask = InetAddress.getByName(subnetString);
+        ipRange.setSubnetMask(subnetMask.getAddress());
 
-        getIPRange().setName(name);
-        getIPRange().setDescription(description);
-        getIPRange().save();
+        ipRange.save();
 
     }
 
@@ -79,11 +111,14 @@
             InetAddress networkAddress = this.ipRange.getNetworkAddress();
             InetAddress subnetMask = this.ipRange.getSubnetMask();
 
+            List partNumbers = new ArrayList();
             for (byte i = 0; i < 4; i++) {
                 setParameter(NETWORK_ADDRESS + "-" + i, new Part(i, ""
                         + networkAddress.getAddress()[i]));
                 setParameter(SUBNET_MASK + "-" + i, new Part(i, "" + subnetMask.getAddress()[i]));
+                partNumbers.add(new Integer(i));
             }
+            setParameter(IPRangeProfile.PART_NUMBERS, partNumbers);
 
         }
     }
@@ -103,39 +138,6 @@
                 }
                 usecase.setParameter(paramName, part);
             }
-        }
-    }
-
-    /**
-     * IP address holder.
-     */
-    public static class Address {
-        private Part[] parts = new Part[4];
-
-        /**
-         * Ctor.
-         */
-        public Address() {
-            for (byte i = 0; i < this.parts.length; i++) {
-                this.parts[i] = new Part(i);
-            }
-        }
-
-        /**
-         * Ctor.
-         * @param address The address.
-         */
-        public Address(InetAddress address) {
-            for (byte i = 0; i < this.parts.length; i++) {
-                this.parts[i] = new Part(i, "" + address.getAddress()[i]);
-            }
-        }
-
-        /**
-         * @return The parts of this address.
-         */
-        public Part[] getParts() {
-            return this.parts;
         }
     }
 

Modified: lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl?rev=170031&r1=170030&r2=170031&view=diff
==============================================================================
--- lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl (original)
+++ lenya/trunk/src/webapp/WEB-INF/cocoon-xconf.xsl Fri May 13 08:06:38 2005
@@ -337,7 +337,7 @@
         <parameter name="tab" value="ipRanges"/>
       </view>
     </component-instance>
-    <component-instance name="admin.ipRangeProfileProfile" logger="lenya.admin" class="org.apache.lenya.cms.ac.usecases.IPRangeProfile">
+    <component-instance name="admin.ipRangeProfile" logger="lenya.admin" class="org.apache.lenya.cms.ac.usecases.IPRangeProfile">
       <view template="admin/ipRangeProfile" menu="true">
         <parameter name="tab" value="ipRanges"/>
       </view>

Added: lenya/trunk/src/webapp/lenya/usecases/admin/ipRangeProfile.jx
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/webapp/lenya/usecases/admin/ipRangeProfile.jx?rev=170031&view=auto
==============================================================================
--- lenya/trunk/src/webapp/lenya/usecases/admin/ipRangeProfile.jx (added)
+++ lenya/trunk/src/webapp/lenya/usecases/admin/ipRangeProfile.jx Fri May 13 08:06:38 2005
@@ -0,0 +1,92 @@
+<page:page
+  xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
+  xmlns:page="http://apache.org/cocoon/lenya/cms-page/1.0"
+  xmlns="http://www.w3.org/1999/xhtml"
+  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"    
+  >
+  
+  <page:body>
+    <jx:import uri="admin/tabs.jx"/>
+    <div id="contentblock1" class="lenya-tab">
+      
+    <h1><i18n:text>IP Range Profile</i18n:text></h1>
+    
+    <form>
+      <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
+      <input type="hidden" name="lenya.usecase" value="${request.getParameter('lenya.usecase')}"/>
+      
+      <table class="lenya-table-noborder">
+        <tr>
+          <td colspan="2">
+            <jx:import uri="templates/messages.jx"/>
+          </td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>IP Range ID</i18n:text></td>
+          <td><jx:out value="${usecase.getParameter('ipRange').getId()}"/></td>
+        </tr>
+        
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Name</i18n:text></td>
+          <td><input type="text" name="name" class="lenya-form-entry" value="${request.getParameter('name')}"/></td>
+        </tr>
+        <tr>
+          <td valign="top" class="lenya-entry-caption"><i18n:text>Description</i18n:text></td>
+          <td>
+            <textarea name="description" class="lenya-form-entry">
+              <jx:out value="${request.getParameter('description')}"/>
+            </textarea>
+          </td>
+        </tr>
+
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Network Address</i18n:text></td>
+          <td>
+            <jx:forEach var="part" items="${usecase.getParameter('partNumbers')}">
+              <jx:choose>
+              	<jx:when test="${usecase.getParameter('networkAddress-' + part).isValid()}">
+                  <input type="text" name="networkAddress-${part}" size="3" maxlength="3"
+                         value="${usecase.getParameter('networkAddress-' + part).getValue()}"
+                         style="text-align: right"/>
+              	</jx:when>
+              	<jx:otherwise>
+                  <input type="text" name="networkAddress-${part}" size="3" maxlength="3"
+                         value="${usecase.getParameter('networkAddress-' + part).getValue()}"
+                         style="background-color: #FF9999; text-align: right;"/>
+              	</jx:otherwise>
+            	</jx:choose>
+  		      </jx:forEach>
+          </td>
+        </tr>
+        <tr>
+          <td class="lenya-entry-caption"><i18n:text>Subnet Mask</i18n:text></td>
+          <td>
+            <jx:forEach var="part" items="${usecase.getParameter('partNumbers')}">
+              <jx:choose>
+              	<jx:when test="${usecase.getParameter('subnetMask-' + part).isValid()}">
+                  <input type="text" name="subnetMask-${part}" size="3" maxlength="3"
+                         value="${usecase.getParameter('subnetMask-' + part).getValue()}"
+                         style="text-align: right"/>
+              	</jx:when>
+              	<jx:otherwise>
+                  <input type="text" name="subnetMask-${part}" size="3" maxlength="3"
+                         value="${usecase.getParameter('subnetMask-' + part).getValue()}"
+                         style="background-color: #FF9999; text-align: right;"/>
+              	</jx:otherwise>
+            	</jx:choose>
+  		      </jx:forEach>
+          </td>
+        </tr>
+    
+        <tr>
+          <td/>
+          <td>
+            <input i18n:attr="value" type="submit" name="submit" value="Save"/>
+            <input i18n:attr="value" type="submit" name="cancel" value="Cancel"/>
+          </td>
+        </tr>
+      </table>
+    </form>
+    </div>
+  </page:body>
+</page:page>
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org