ktlili 2005/06/08 17:44:24 CEST
Modified files:
war/JBuilderConf Clipper_Portlet.jpx
war/src/java/com/jahia/clipping/web WebBrowserSimulator.java
war/src/java/com/jahia/clipping/web/html/Impl
DefaultHTMLTransformer.java
StringTreeExtractorFilter.java
war/src/java/com/jahia/clipping/web/http/impl
HTMLUnitProcessor.java
war/src/java/com/jahia/portlet ClipperPortlet.java
war/src/webapp/WEB-INF clipper.xml
Log:
Fix select form feature
Revision Changes Path
1.2 +3 -0 webclip_portlet/war/JBuilderConf/Clipper_Portlet.jpx
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/JBuilderConf/Clipper_Portlet.jpx.diff?r1=1.1&r2=1.2&f=h
1.3 +15 -4
webclip_portlet/war/src/java/com/jahia/clipping/web/WebBrowserSimulator.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/com/jahia/clipping/web/WebBrowserSimulator.java.diff?r1=1.2&r2=1.3&f=h
1.3 +3 -7
webclip_portlet/war/src/java/com/jahia/clipping/web/html/Impl/DefaultHTMLTransformer.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/com/jahia/clipping/web/html/Impl/DefaultHTMLTransformer.java.diff?r1=1.2&r2=1.3&f=h
1.3 +47 -11
webclip_portlet/war/src/java/com/jahia/clipping/web/html/Impl/StringTreeExtractorFilter.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/com/jahia/clipping/web/html/Impl/StringTreeExtractorFilter.java.diff?r1=1.2&r2=1.3&f=h
1.2 +1 -0
webclip_portlet/war/src/java/com/jahia/clipping/web/http/impl/HTMLUnitProcessor.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/com/jahia/clipping/web/http/impl/HTMLUnitProcessor.java.diff?r1=1.1&r2=1.2&f=h
1.3 +11 -41
webclip_portlet/war/src/java/com/jahia/portlet/ClipperPortlet.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/java/com/jahia/portlet/ClipperPortlet.java.diff?r1=1.2&r2=1.3&f=h
1.2 +134 -21 webclip_portlet/war/src/webapp/WEB-INF/clipper.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/webclip_portlet/war/src/webapp/WEB-INF/clipper.xml.diff?r1=1.1&r2=1.2&f=h
Index: Clipper_Portlet.jpx
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/JBuilderConf/Clipper_Portlet.jpx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Clipper_Portlet.jpx 3 Jun 2005 17:03:23 -0000 1.1
+++ Clipper_Portlet.jpx 8 Jun 2005 15:44:22 -0000 1.2
@@ -57,6 +57,9 @@
<property category="sys" name="VersionLabel" value="@version"/>
<property category="sys" name="WorkingDirectory" value="."/>
<property category="webModule" name="last.wizard.module.name"
value="webapp"/>
+ <node name="clippers" type="NavigationDirectory">
+ <property category="directorynode" name="url" value="C%%|/Documents and
Settings/jahia/jbproject/webclip_builder/war/target/webraptor/clippers"/>
+ </node>
<node name="webapp" type="WebModuleNode">
<property category="archiving" name="archiverClass"
value="com.borland.jbuilder.enterprise.module.web.WebModuleArchiver"/>
<property category="archiving" name="contentRules.1" value="i:sar"/>
Index: WebBrowserSimulator.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/com/jahia/clipping/web/WebBrowserSimulator.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- WebBrowserSimulator.java 7 Jun 2005 17:44:39 -0000 1.2
+++ WebBrowserSimulator.java 8 Jun 2005 15:44:22 -0000 1.3
@@ -37,10 +37,8 @@
/**
* Sets the UserPreferences attribute of the WebBrowserSimulator object
- *
*/
-
/**
* Sets the Request attribute of the WebBrowserSimulator object
*
@@ -174,11 +172,24 @@
// for each url, rebuild the document whithe the new
value of the parameter
for (int i = 0; i < urlListBean.size(); i++) {
+
+ //test web client
+ PortletSession session =
request.getPortletSession();
+ Object o =
session.getAttribute(com.jahia.clipping.web.Constant.WebConstants.WEBCLIENT);
+ if (o == null) {
+ logger.debug("WebClient not found, is
null");
+ }
+ else {
+ logger.debug("WebClient found, is not
null");
+ }
+ //////////////////////
+
+
// get the url bean
UrlBean uBean = (UrlBean) urlListBean.get(i);
logger.debug("[WebBrowserSimulator] Current
url: " + uBean.getUrlValue());
//process the current urlBean
- boolean isLastUrl = i == urlListBean.size() - 1;
+ boolean isLastUrl = (i == urlListBean.size() -
1);
//refactor only the lastUrl
uBean.setDocument(processUrl(request, response,
uBean, isLastUrl));
@@ -225,7 +236,6 @@
-
/**
* Description of the Method
*
@@ -303,6 +313,7 @@
org.apache.commons.httpclient.Header[] headers = new
org.apache.commons.httpclient.Header[1];
String encodingValue;
+
// = request.getHeader("Content-Type");
encodingValue = "UTF-8";
logger.debug("[ Encoding is " + encodingValue + " ]");
Index: DefaultHTMLTransformer.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/com/jahia/clipping/web/html/Impl/DefaultHTMLTransformer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultHTMLTransformer.java 7 Jun 2005 17:44:40 -0000 1.2
+++ DefaultHTMLTransformer.java 8 Jun 2005 15:44:22 -0000 1.3
@@ -130,15 +130,11 @@
[EMAIL PROTECTED] Exception Description of Exception
*/
public String getRewritedHrefValue(String href) throws Exception {
- // test if it's an url
- if (URLUtilities.isRelatif(href) || (href!=null &&
href.substring(4).equalsIgnoreCase("http"))) {
+ // test if it's an url
href = URLUtilities.getHrefAbsoluteValue(getUrlBean().getURL(),
href);
String[] params = {href};
- UrlEncoder encoder = new
UrlEncoder(getRenderRequest(),getRenderResponse(),params);
+ UrlEncoder encoder = new UrlEncoder(getRenderRequest(),
getRenderResponse(), params);
return encoder.getEncodedUrl();
- }else{
- return href;
- }
}
@@ -171,7 +167,7 @@
// Create an instance of HttpClient.
String refactoredContent =
CssUtilities.getRefactoredCssContent(url,
content, media);
- logger.debug("[ Refactored css Content from " + url + "\n "
+refactoredContent + "]");
+ logger.debug("[ Refactored css Content from " + url + "\n " +
refactoredContent + "]");
return refactoredContent;
}
Index: StringTreeExtractorFilter.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/com/jahia/clipping/web/html/Impl/StringTreeExtractorFilter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- StringTreeExtractorFilter.java 7 Jun 2005 17:44:40 -0000 1.2
+++ StringTreeExtractorFilter.java 8 Jun 2005 15:44:22 -0000 1.3
@@ -188,7 +188,10 @@
ex.printStackTrace();
logger.error("buldKeySelectedPart error " +
ex.getMessage());
}
- setKeyPart(visitor.getBuildedKey());
+
+ String key = visitor.getBuildedKey();
+ key = refactorKey(key);
+ setKeyPart(key);
}
@@ -251,7 +254,7 @@
// add the first ele to the list
if (firtsTag == null) {
- logger.error("[No element whith key " + key + "
founded]");
+ logger.error("[No element whith key " + key + "
found]");
}
else {
logger.debug("[Element --" + firtsTag.getTagName() +
"-- whith key " + key + " added]");
@@ -272,7 +275,7 @@
//add element
Tag currentEle = getTagFromStringKey(newKey);
if (currentEle == null) {
- logger.error("[No element whith key " +
newKey + " founded]");
+ logger.error("[No element whith key " +
newKey + " found]");
}
else {
logger.debug("[Element <" +
currentEle.getTagName() + "> whith key " + newKey + " added]");
@@ -297,6 +300,7 @@
*/
private String refactorKey(String originalSelectedPart) {
String realSelectedPart = originalSelectedPart;
+ realSelectedPart = originalSelectedPart.replaceAll(":TBODY",
"");
return realSelectedPart;
}
@@ -361,7 +365,7 @@
String selectedPart = bspv.getSelectedPart();
//Rebuild the document
- setSelectedPart("<div class=\""+CssUtilities.HTML_CLASS+"
"+CssUtilities.BODY_CLASS+" \">"+selectedPart+"\n </div>");
+ setSelectedPart("<div class=\"" + CssUtilities.HTML_CLASS +
" " + CssUtilities.BODY_CLASS + " \">" + selectedPart + "\n </div>");
}
@@ -493,6 +497,29 @@
/**
+ * Gets the SelectedTagEmbeddedInFormTag attribute of the
+ * BuildSelectedPartVisitor object
+ *
+ [EMAIL PROTECTED] currentTag Description of Parameter
+ [EMAIL PROTECTED] pTag Description of Parameter
+ [EMAIL PROTECTED] The
SelectedTagEmbeddedInFormTag value
+ */
+ private FormTag getSelectedTagEmbeddedInFormTag(
+ Tag currentTag, FormTag pTag) {
+ Hashtable atts = pTag.getAttributes();
+ pTag = new FormTag();
+ pTag.setAttributes(atts);
+ FormTag endTag = new FormTag();
+ endTag.setTagName("/form");
+ pTag.setEndTag(endTag);
+ NodeList children = new NodeList();
+ children.add(currentTag);
+ pTag.setChildren(children);
+ return pTag;
+ }
+
+
+ /**
* Description of the Method
*
[EMAIL PROTECTED] tag Description of Parameter
@@ -501,19 +528,28 @@
// add the selected tags
key = key + ":" + tag.getTagName();
Tag currentTag = (Tag) tagHash.get(key);
+
if (currentTag != null) {
logger.debug("This tag is selected");
addedTagSet.add(currentTag);
- Node pNode = currentTag.getParent();
- if (addedTagSet.contains((Tag) pNode)) {
+ Tag pTag = (Tag) currentTag.getParent();
+
+ if (addedTagSet.contains(pTag)) {
logger.debug("This tag is already
rendered");
return;
}
- //Tag is selected
- logger.debug("Tag added");
- updateCssHeritance(currentTag, pNode);
- selectedPart = selectedPart +
currentTag.toHtml();
-
+ //process form parent tag
+ if (pTag instanceof FormTag) {
+ logger.debug("Tag added whith form
parent");
+ FormTag fTag =
getSelectedTagEmbeddedInFormTag(currentTag, (FormTag) pTag);
+ selectedPart = selectedPart +
fTag.toHtml();
+ }
+ else {
+ //Tag is selected
+ logger.debug("Tag added");
+ updateCssHeritance(currentTag, pTag);
+ selectedPart = selectedPart +
currentTag.toHtml();
+ }
}
}
Index: HTMLUnitProcessor.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/com/jahia/clipping/web/http/impl/HTMLUnitProcessor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- HTMLUnitProcessor.java 3 Jun 2005 17:03:29 -0000 1.1
+++ HTMLUnitProcessor.java 8 Jun 2005 15:44:23 -0000 1.2
@@ -96,6 +96,7 @@
[EMAIL PROTECTED] webClient The new WebClient value
*/
public void setWebClient(Object webClient) {
+
this.webClient = (WebClient) webClient;
}
Index: ClipperPortlet.java
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/java/com/jahia/portlet/ClipperPortlet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ClipperPortlet.java 7 Jun 2005 17:44:40 -0000 1.2
+++ ClipperPortlet.java 8 Jun 2005 15:44:23 -0000 1.3
@@ -112,6 +112,7 @@
public void doView(RenderRequest request, RenderResponse response) {
logger.debug("[ DOVIEW ] new Session");
response.setContentType("text/html");
+ response.getCharacterEncoding();
try {
Writer writer = response.getWriter();
PortletSession session = request.getPortletSession();
@@ -122,34 +123,9 @@
else {
logger.debug("Old Session");
}
- String show = request.getParameter("show");
- String url = request.getParameter("sourceUrl");
-
- //init show attribute
- if (show == null) {
- show = "part";
- }
- PortletURL aUrl = response.createActionURL();
- A aEle = new A();
- if (show.equalsIgnoreCase("part")) {
- //Show all
- logger.debug("show part");
- aUrl.setParameter("show", "all");
- aEle.setHref(aUrl.toString());
- aEle.setTagText("Show All Document");
- }
- else {
- if (show.equalsIgnoreCase("all")) {
- logger.debug("show All");
- aUrl.setParameter("show", "part");
- aEle.setHref(aUrl.toString());
- aEle.setTagText("Show Part of the
Document");
- }
- }
- writer.write(aEle.toString());
-
- //web simulator
+ String url = request.getParameter("sourceUrl");
+ //web simulator
if (url == null) {
loadUserPreferences(request);
logger.debug("[ Run WebBrowserSimulator ]");
@@ -159,22 +135,21 @@
WebBrowserSimulator wbs = new
WebBrowserSimulator(request, response, SessionManager.getClipperBean(request));
//Manage show part or All
- String html = "";
- if (show.equalsIgnoreCase("part")) {
+ String html = "init";
+ WindowState ws = request.getWindowState();
+ if (ws == WindowState.MAXIMIZED) {
//Show all
- logger.debug("show part");
- html = wbs.getHTMLPart();
+ logger.debug("SHOW ALL DOCUMENT");
+ html =
wbs.getFinalHtmlResponse(request, response);
}
else {
- if (show.equalsIgnoreCase("all")) {
- logger.debug("show All");
- html =
wbs.getFinalHtmlResponse(request, response);
- }
+ html = wbs.getHTMLPart();
}
// write the result
+ String encodedHTML = new
String(html.getBytes(),response.getCharacterEncoding());
writer.write("<div class=\"webClipping\"
style=\"position: relative;\" >");
- writer.write(html);
+ writer.write(encodedHTML);
writer.write("</div>");
}
else {
@@ -214,11 +189,6 @@
}
logger.debug("[ End Listing Param ]");
- // forward the parameters
- String show = request.getParameter("show");
- if (show != null) {
- response.setRenderParameter("show", show);
- }
}
//Edit Mode
Index: clipper.xml
===================================================================
RCS file:
/home/cvs/repository/webclip_portlet/war/src/webapp/WEB-INF/clipper.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- clipper.xml 3 Jun 2005 17:03:42 -0000 1.1
+++ clipper.xml 8 Jun 2005 15:44:23 -0000 1.2
@@ -1,22 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<Clipper>
- <name>EPFL-People</name>
- <description>People of the epfl</description>
+ <name>orange</name>
+ <description />
<!--All the url visited by the clipper (ranged by order)-->
<sequenceUrl>
<!--Next url to visit-->
<url>
- <value>http://www.epfl.ch</value>
- <!--Paramters founded in forms tag-->
+ <value>http://www.orange.ch</value>
+ <!--Paramters found in forms tag-->
<form-Param>
- <parameter name="engine" mapping="engine" type="radio">
- <Possible-value>ldap</Possible-value>
- <Possible-value>map</Possible-value>
- <Possible-value>google</Possible-value>
- <Possible-value>inktomi</Possible-value>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
</parameter>
- <parameter name="name" mapping="name" type="text">
- <Possible-value>no_value_Founded</Possible-value>
+ </form-Param>
+ <!--Nested parameterd for the request-->
+ <query-Param />
+ </url>
+ <!--Next url to visit-->
+ <url>
+ <value>http://www.orange.ch/myorange</value>
+ <!--Paramters found in forms tag-->
+ <form-Param>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
</parameter>
</form-Param>
<!--Nested parameterd for the request-->
@@ -24,19 +30,119 @@
</url>
<!--Next url to visit-->
<url>
- <value>http://www.epfl.ch/searchRedirect.php</value>
- <!--Paramters founded in forms tag-->
+ <value>https://www.orange.ch/welcome</value>
+ <!--Paramters found in forms tag-->
<form-Param>
- <parameter name="name" mapping="name" type="no_value_Founded">
- <Possible-value>no_value_Founded</Possible-value>
+ <parameter name="username" mapping="username" type="text">
+ <Possible-value />
+ </parameter>
+ <parameter name="password" mapping="password" type="password">
+ <Possible-value />
+ </parameter>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
</parameter>
</form-Param>
<!--Nested parameterd for the request-->
<query-Param>
- <parameter name="engine" default="ldap" visibility="true" />
- <parameter name="y" default="6" visibility="true" />
- <parameter name="name" default="tlili" visibility="true" />
- <parameter name="x" default="8" visibility="true" />
+ <parameter name="ts" default="1118243357102" visibility="true" />
+ </query-Param>
+ </url>
+ <!--Next url to visit-->
+ <url>
+
<value>https://www.orange.ch/footer/login/loginForm?ts=1118245010628</value>
+ <!--Paramters found in forms tag-->
+ <form-Param>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
+ </parameter>
+ </form-Param>
+ <!--Nested parameterd for the request-->
+ <query-Param>
+ <parameter name="password" default="orion1980" visibility="true" />
+ <parameter name="wui_target_id" default="loginButton"
visibility="true" />
+ <parameter name="wui_event_id" default="onclick" visibility="true" />
+ <parameter name="loginButton" default="Login" visibility="true" />
+ <parameter name="username" default="khaled.tlili" visibility="true"
/>
+ </query-Param>
+ </url>
+ <!--Next url to visit-->
+ <url>
+ <value>https://www.orange.ch/sms</value>
+ <!--Paramters found in forms tag-->
+ <form-Param>
+ <parameter name="destinationNumberInput"
mapping="destinationNumberInput" type="text">
+ <Possible-value />
+ </parameter>
+ <parameter name="charNumberLeftOutput"
mapping="charNumberLeftOutput" type="text">
+ <Possible-value>132</Possible-value>
+ </parameter>
+ <parameter name="signatureInput" mapping="signatureInput"
type="text">
+ <Possible-value>khaled.tlili</Possible-value>
+ </parameter>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
+ </parameter>
+ </form-Param>
+ <!--Nested parameterd for the request-->
+ <query-Param>
+ <parameter name="ts" default="1118245030240" visibility="true" />
+ </query-Param>
+ </url>
+ <!--Next url to visit-->
+ <url>
+
<value>https://www.orange.ch/myorange/sms/smsForm?ts=1118245041329</value>
+ <!--Paramters found in forms tag-->
+ <form-Param>
+ <parameter name="destinationNumberInput"
mapping="destinationNumberInput" type="text">
+ <Possible-value />
+ </parameter>
+ <parameter name="charNumberLeftOutput"
mapping="charNumberLeftOutput" type="text">
+ <Possible-value>132</Possible-value>
+ </parameter>
+ <parameter name="signatureInput" mapping="signatureInput"
type="text">
+ <Possible-value>khaled.tlili</Possible-value>
+ </parameter>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
+ </parameter>
+ </form-Param>
+ <!--Nested parameterd for the request-->
+ <query-Param>
+ <parameter name="messageInput" default="sms from a webcli_builder"
visibility="true" />
+ <parameter name="wui_target_id" default="sendButton"
visibility="true" />
+ <parameter name="wui_event_id" default="onclick" visibility="true" />
+ <parameter name="charNumberLeftOutput" default="105"
visibility="true" />
+ <parameter name="destinationNumberInput" default="0786520130 "
visibility="true" />
+ <parameter name="signatureInput" default="khaled.tlili"
visibility="true" />
+ </query-Param>
+ </url>
+ <!--Next url to visit-->
+ <url>
+
<value>https://www.orange.ch/myorange/sms/smsForm?ts=1118245066338</value>
+ <!--Paramters found in forms tag-->
+ <form-Param>
+ <parameter name="destinationNumberInput"
mapping="destinationNumberInput" type="text">
+ <Possible-value />
+ </parameter>
+ <parameter name="charNumberLeftOutput"
mapping="charNumberLeftOutput" type="text">
+ <Possible-value>132</Possible-value>
+ </parameter>
+ <parameter name="signatureInput" mapping="signatureInput"
type="text">
+ <Possible-value>khaled.tlili</Possible-value>
+ </parameter>
+ <parameter name="searchRequest" mapping="searchRequest" type="text">
+ <Possible-value>no_value_Found</Possible-value>
+ </parameter>
+ </form-Param>
+ <!--Nested parameterd for the request-->
+ <query-Param>
+ <parameter name="messageInput" default="from a webclipper_2"
visibility="true" />
+ <parameter name="wui_target_id" default="sendButton"
visibility="true" />
+ <parameter name="wui_event_id" default="onclick" visibility="true" />
+ <parameter name="charNumberLeftOutput" default="111"
visibility="true" />
+ <parameter name="destinationNumberInput" default="0786520130"
visibility="true" />
+ <parameter name="signatureInput" default="khaled.tlili"
visibility="true" />
</query-Param>
</url>
</sequenceUrl>
@@ -46,10 +152,17 @@
<client>0</client>
<htmldocument>2</htmldocument>
<enable-css>on</enable-css>
- <enable-javascript>on</enable-javascript>
+ <enable-javascript />
</conf>
<filter type="stringTree">
-
<key>:table:tr:td:a:td:a:td:a:td:a:td:a:td:tr:td:a:td:td:td:td:td:tr:td:a:td:td:td:td:td:a:img:tr:td:a:td:td:td:td:td:a:img</key>
+
<key>:TR:TD:IMG:TD:SPAN:BR:TR:TD:IMG:TD:INPUT:INPUT:BR:SPAN:BR:TR:TD:IMG:TD:TEXTAREA:BR:SPAN:INPUT:BR:TR:TD:IMG:TD:INPUT:INPUT:INPUT</key>
</filter>
</Clipper>
+
+
+
+
+
+
+