You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/06/19 11:44:33 UTC

svn commit: r1137320 - in /openejb/trunk/sandbox/tools/src/main: java/org/apache/openejb/tools/examples/ resources/generate-index/ resources/generate-index/css/ resources/generate-index/javascript/ resources/generate-index/velocity/

Author: rmannibucau
Date: Sun Jun 19 09:44:33 2011
New Revision: 1137320

URL: http://svn.apache.org/viewvc?rev=1137320&view=rev
Log:
first try to filter index page apis

Modified:
    openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/GenerateIndex.java
    openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/ViewHelper.java
    openejb/trunk/sandbox/tools/src/main/resources/generate-index/config.properties
    openejb/trunk/sandbox/tools/src/main/resources/generate-index/css/openejb-examples.css
    openejb/trunk/sandbox/tools/src/main/resources/generate-index/javascript/index.js
    openejb/trunk/sandbox/tools/src/main/resources/generate-index/velocity/index.vm

Modified: openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/GenerateIndex.java
URL: http://svn.apache.org/viewvc/openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/GenerateIndex.java?rev=1137320&r1=1137319&r2=1137320&view=diff
==============================================================================
--- openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/GenerateIndex.java (original)
+++ openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/GenerateIndex.java Sun Jun 19 09:44:33 2011
@@ -40,6 +40,7 @@ import static org.apache.openejb.tools.e
 import static org.apache.openejb.tools.examples.ViewHelper.getAggregateClasses;
 import static org.apache.openejb.tools.examples.ViewHelper.getAndUpdateApis;
 import static org.apache.openejb.tools.examples.ViewHelper.getClassesByApi;
+import static org.apache.openejb.tools.examples.ViewHelper.getExamplesClassesByApi;
 import static org.apache.openejb.tools.examples.ViewHelper.getLink;
 import static org.apache.openejb.tools.examples.ViewHelper.removePrefix;
 
@@ -70,12 +71,12 @@ import static org.apache.openejb.tools.e
 public class GenerateIndex {
     private static final Logger LOGGER = Logger.getLogger(GenerateIndex.class);
 
-    private static final String EXTRACTED_EXAMPLES = "extracted";
-    private static final String GENERATED_EXAMPLES = "generated";
-    private static final String INDEX_HTML = "index.html";
-    private static final String GLOSSARY_HTML = "glossary.html";
-    private static final String README_MD = "README.md";
-    private static final String POM_XML = "pom.xml";
+    public static final String EXTRACTED_EXAMPLES = "extracted";
+    public static final String GENERATED_EXAMPLES = "generated";
+    public static final String INDEX_HTML = "index.html";
+    public static final String GLOSSARY_HTML = "glossary.html";
+    public static final String README_MD = "README.md";
+    public static final String POM_XML = "pom.xml";
 
     private static final MarkdownProcessor PROCESSOR = new MarkdownProcessor();
 
@@ -168,7 +169,8 @@ public class GenerateIndex {
             }
         }
 
-        Map<String, String> classesByApi = getClassesByApi(exampleLinksByKeyword); // css class(es)
+        Map<String, String> classesByApi = getClassesByApi(exampleLinksByKeyword, '.', ViewHelper.REPLACED_CHAR); // css class(es) for aggregates
+        Map<String, String> examplesClassesByApi = getExamplesClassesByApi(exampleLinksByKeyword); // css class(es) for buttons
         Map<String, String> aggregatedClasses = getAggregateClasses(new ArrayList<String>(nameByLink.keySet()), exampleLinksByKeyword);
 
         // create a glossary page (OR search)
@@ -178,9 +180,9 @@ public class GenerateIndex {
                 .add(BASE, base)
                 .add(USER_JAVASCRIPTS, newList(String.class).add("glossary.js").list())
                 .add("links", nameByLink)
+                .add("examples", nameByLink)
                 .add("classes", classesByApi)
                 .add("exampleByKeyword", exampleLinksByKeyword)
-                .add("examples", nameByLink)
                 .add("aggregatedClasses", aggregatedClasses)
                 .map(),
             new File(generatedDir, GLOSSARY_HTML).getPath());
@@ -193,6 +195,7 @@ public class GenerateIndex {
                 .add(USER_JAVASCRIPTS, newList(String.class).add("index.js").list())
                 .add("examples", nameByLink)
                 .add("classes", classesByApi)
+                .add("examplesClasses", examplesClassesByApi)
                 .add("aggregatedClasses", aggregatedClasses)
                 .map(),
             new File(generatedDir, INDEX_HTML).getPath());

Modified: openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/ViewHelper.java
URL: http://svn.apache.org/viewvc/openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/ViewHelper.java?rev=1137320&r1=1137319&r2=1137320&view=diff
==============================================================================
--- openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/ViewHelper.java (original)
+++ openejb/trunk/sandbox/tools/src/main/java/org/apache/openejb/tools/examples/ViewHelper.java Sun Jun 19 09:44:33 2011
@@ -20,6 +20,9 @@ import org.apache.log4j.Logger;
  */
 public final class ViewHelper {
     private static final Logger LOGGER = Logger.getLogger(ViewHelper.class);
+
+    public static final char REPLACED_CHAR = '_';
+
     private static final String JAVAX_PREFIX = "javax.";
     private static final String IMPORT_START = "import ";
 
@@ -30,15 +33,27 @@ public final class ViewHelper {
     public static Map<String, String> getAggregateClasses(List<String> links, Map<String, Set<String>> exampleLinksByKeyword) {
         Map<String, String> classes = new HashMap<String, String>();
         for (String link: links) {
-            classes.put(link, getHTMLClass(exampleLinksByKeyword, link));
+            classes.put(link, concatHTMLClasses(getApisForExample(exampleLinksByKeyword, link), "example", '.', '_'));
         }
         return classes;
     }
 
-    public static Map<String, String> getClassesByApi(Map<String, Set<String>> exampleLinksByKeyword) {
+    public static Map<String, String> getExamplesClassesByApi(Map<String, Set<String>> exampleLinksByKeyword) {
+        Map<String, String> classes = new TreeMap<String, String>();
+        for (Entry<String, Set<String>> entry : exampleLinksByKeyword.entrySet()) {
+            Set<String> examples = new HashSet<String>();
+            for (String example : entry.getValue()) {
+                examples.add(example.substring(0, example.length() - GenerateIndex.INDEX_HTML.length() - 1));
+            }
+            classes.put(entry.getKey(), concatHTMLClasses(examples, "button", '/', REPLACED_CHAR));
+        }
+        return classes;
+    }
+
+    public static Map<String, String> getClassesByApi(Map<String, Set<String>> exampleLinksByKeyword, char toReplace, char replaced) {
         Map<String, String> classes = new TreeMap<String, String>();
         for (String api : exampleLinksByKeyword.keySet()) {
-            classes.put(api, api.replace(".", "-"));
+            classes.put(api, api.replace(toReplace, replaced));
         }
         return classes;
     }
@@ -79,17 +94,25 @@ public final class ViewHelper {
         return apiCount;
     }
 
-    private static String getHTMLClass(Map<String, Set<String>> exampleLinksByKeyword, String value) {
-        StringBuilder clazz = new StringBuilder("example");
+    private static String concatHTMLClasses(Set<String> values, String defaultClass, char toReplace, char replaced) {
+        StringBuilder htmlClass = new StringBuilder(defaultClass);
+        for (String value : values) {
+            htmlClass.append(' ').append(value.replace(toReplace, replaced));
+        }
+        return htmlClass.toString().trim();
+    }
+
+    private static Set<String> getApisForExample(Map<String, Set<String>> exampleLinksByKeyword, String example) {
+        Set<String> set = new HashSet<String>();
         for (Entry<String, Set<String>> links : exampleLinksByKeyword.entrySet()) {
             for (String link : links.getValue()) {
-                if (value.equals(link)) {
-                    clazz.append(" ").append(links.getKey().replace('.', '-'));
+                if (example.equals(link)) {
+                    set.add(links.getKey());
                     break;
                 }
             }
         }
-        return clazz.toString();
+        return set;
     }
 
     private static Set<String> getImports(File file) throws IOException {

Modified: openejb/trunk/sandbox/tools/src/main/resources/generate-index/config.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/sandbox/tools/src/main/resources/generate-index/config.properties?rev=1137320&r1=1137319&r2=1137320&view=diff
==============================================================================
--- openejb/trunk/sandbox/tools/src/main/resources/generate-index/config.properties (original)
+++ openejb/trunk/sandbox/tools/src/main/resources/generate-index/config.properties Sun Jun 19 09:44:33 2011
@@ -1 +1,2 @@
-base=http://people.apache.org/~rmannibucau
+#base=http://people.apache.org/~rmannibucau
+base=/home/rmannibucau/Development/openejb/tools/src/main/resources/generate-index

Modified: openejb/trunk/sandbox/tools/src/main/resources/generate-index/css/openejb-examples.css
URL: http://svn.apache.org/viewvc/openejb/trunk/sandbox/tools/src/main/resources/generate-index/css/openejb-examples.css?rev=1137320&r1=1137319&r2=1137320&view=diff
==============================================================================
--- openejb/trunk/sandbox/tools/src/main/resources/generate-index/css/openejb-examples.css (original)
+++ openejb/trunk/sandbox/tools/src/main/resources/generate-index/css/openejb-examples.css Sun Jun 19 09:44:33 2011
@@ -21,7 +21,8 @@ body {
 #checkboxes-check {
     margin-right: 0;
     float: right;
-    width: 400px;
+    width: 25em;
+    text-align: center;
 }
 
 #checkboxes-button ul, #checkboxes-check ul {
@@ -65,3 +66,8 @@ body {
 #floatingbar ul li a:hover {
     color:#000033;
 }
+
+.button {
+    font-size: 0.8em;
+    width: 20em;
+}

Modified: openejb/trunk/sandbox/tools/src/main/resources/generate-index/javascript/index.js
URL: http://svn.apache.org/viewvc/openejb/trunk/sandbox/tools/src/main/resources/generate-index/javascript/index.js?rev=1137320&r1=1137319&r2=1137320&view=diff
==============================================================================
--- openejb/trunk/sandbox/tools/src/main/resources/generate-index/javascript/index.js (original)
+++ openejb/trunk/sandbox/tools/src/main/resources/generate-index/javascript/index.js Sun Jun 19 09:44:33 2011
@@ -1,5 +1,6 @@
 var close = ' X';
 var selectedClasses = new Array(); // classes to use
+var correspondingExamples = new Array(); // classes to use
 
 function filterExamples($button) {
     if ($button.selected) {
@@ -7,27 +8,51 @@ function filterExamples($button) {
         for (var i = 0; i < selectedClasses.length; i++) {
             if (selectedClasses[i] == $($button).attr('api')) {
                 selectedClasses.splice(i, 1);
+                correspondingExamples.splice(i, 1);
                 break;
             }
         }
     } else {
         $button.value = $button.value.concat(close);
         selectedClasses.push($($button).attr('api'));
+        correspondingExamples.push($($button).attr('class'));
     }
     $button.selected = !$button.selected;
 
     // refresh
-    var filtering = '';
+    var filteringForExamples = ''; // for examples
     if (selectedClasses.length > 0) {
-        filtering = '.'.concat(selectedClasses.join("."));
+        filteringForExamples = '.'.concat(selectedClasses.join("."));
     }
 
+    var filteringForButtons = ''; // for buttons
+    if (correspondingExamples.length > 0) {
+        for (var i = 0; i < correspondingExamples.length; i++) {
+            filteringForButtons = filteringForButtons.concat(' ').concat(correspondingExamples[i]);
+        }
+        var examplesForButtons = $.unique(filteringForButtons.split(' '));
+        filteringForButtons = '.'.concat(examplesForButtons.join('.'));
+    }
+
+    // filtering examples
     $('div#examples').find('li').each(function(i, val) {
         $(val).show('slow');
     });
-    $('div#examples').find('li:not(' + filtering + ')').each(function(i, val) {
-        if ($(val).is('.example')) { // glossary shouldn't be filtered
+    if (selectedClasses.length > 0) {
+        $('div#examples').find('li:not(' + filteringForExamples + ').example').each(function(i, val) {
             $(val).hide();
-        }
+        });
+    }
+
+    // filtering buttons (apis)
+    $('div#checkboxes-check > ul > li > input[type=button].button').each(function(i, val) {
+        $(val).show('slow');
     });
+    if (correspondingExamples.length > 0) {
+        $('div#checkboxes-check > ul > li > input[type=button].button').not(filteringForButtons).each(function(i, val) {
+            if (!$(val).attr('selected')) { // to be kept
+                $(val).hide();
+            }
+        });
+    }
 }

Modified: openejb/trunk/sandbox/tools/src/main/resources/generate-index/velocity/index.vm
URL: http://svn.apache.org/viewvc/openejb/trunk/sandbox/tools/src/main/resources/generate-index/velocity/index.vm?rev=1137320&r1=1137319&r2=1137320&view=diff
==============================================================================
--- openejb/trunk/sandbox/tools/src/main/resources/generate-index/velocity/index.vm (original)
+++ openejb/trunk/sandbox/tools/src/main/resources/generate-index/velocity/index.vm Sun Jun 19 09:44:33 2011
@@ -4,7 +4,7 @@
             <div id="checkboxes-check">
                 <ul>
 #foreach( $entry in $classes.entrySet() )
-                    <li><input type="button" selected="false" api="$classes.get($entry.key)" value="$entry.key" onclick="javascript:filterExamples(this)" ></li>
+                    <li><input class="$examplesClasses.get($entry.key)" type="button" api="$classes.get($entry.key)" value="$entry.key" onclick="javascript:filterExamples(this)" ></li>
 #end
                 </ul>
             </div>