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>