Author: swatig0
Date: 2007-08-18 14:45:01 +0000 (Sat, 18 Aug 2007)
New Revision: 14786
Modified:
trunk/plugins/XMLLibrarian/XMLLibrarian.java
Log:
XMLLibrarian UI fixed
Modified: trunk/plugins/XMLLibrarian/XMLLibrarian.java
===================================================================
--- trunk/plugins/XMLLibrarian/XMLLibrarian.java 2007-08-18 14:40:43 UTC
(rev 14785)
+++ trunk/plugins/XMLLibrarian/XMLLibrarian.java 2007-08-18 14:45:01 UTC
(rev 14786)
@@ -72,6 +72,10 @@
//public String DEFAULT_INDEX_SITE="SSK at
F2r3VplAy6D0Z3odk0hqoHIHMTZfAZ2nx98AiF44pfY,alJs1GWselPGxkjlEY3KdhqLoIAG7Snq5qfUMhgJYeI,AQACAAE/testsite/";
//public String DEFAULT_INDEX_SITE="SSK at
0yc3irwbhLYU1j3MdzGuwC6y1KboBHJ~1zIi8AN2XC0,5j9hrd2LLcew6ieoX1yC-hXRueSKziKYnRaD~aLnAYE,AQACAAE/testsite/";
public String DEFAULT_INDEX_SITE="";
+ /*
+ * Current configuration gets saved by default in the configfile.
+ * To Save the current configuration use "Save Configuration"
+ */
private String configfile = "XMLLibrarian.xml";
private String DEFAULT_FILE = "index.xml";
boolean goon = true;
@@ -126,33 +130,45 @@
public void appendDefaultPostFields(StringBuffer out, String search,
String index) {
search = HTMLEncoder.encode(search);
index = HTMLEncoder.encode(index);
+ out.append("<form method=\"GET\"><table><tr><td>");
+ out.append("<input type=submit name=\"addToFolder\" value=\"Add
to folder\" /></td><td>");
+ out.append("<input type=submit name=\"newFolder\" value=\"New
Folder\" /></td>");
+ out.append("<td><input type=submit name=\"List\" value=\"List\"
/></td>");
+ out.append("<td><input type=submit name=\"help\"
value=\"Help!\" /></td>");
+ out.append("<td><input type=submit name=\"delete\"
value=\"Delete Folder\" /></td>");
+ out.append("</tr></table>");
out.append("Search in the index or folder:<br/>");
- out.append("<form method=\"GET\"><input type=\"text\"
value=\"").append(search).append("\" name=\"search\" size=80/><br/><br/>");
- out.append("<input type=\"radio\" name=\"choice\"
value=\"index\">Index<br/>");
- out.append("Using the index site(remember to give the site
without index.xml):<br/>");
- out.append("<input type=\"text\" name=\"index\"
value=\"").append(index).append("\" size=80/><br/>");
+ out.append("<p><input type=\"text\"
value=\"").append(search).append("\" name=\"search\" size=80/>");
+ out.append("<input type=submit name = \"find\"
value=\"Find!\"/></p>\n");
+ out.append("Using the index or folder <br/>");
+ out.append("<p><input type=\"radio\" name=\"choice\"
value=\"folder\">Folder");
out.append("<select name=\"folderList\">");
String[] words = (String[]) indexList.keySet().toArray(new
String[indexList.size()]);
for(int i =0;i<words.length;i++)
{
- out.append("<option
value=\"").append(words[i]).append("\">").append(words[i]).append("</option");
+ out.append("<option
value=\"").append(words[i]).append("\">").append(words[i]).append("</option></p>");
}
- out.append("<br/><input type=\"radio\" name=\"choice\"
value=\"folder\"> Folder<br/>");
- out.append("<input type=submit name=\"addToFolder\" value=\"Add
to folder\" />");
- out.append("<input type=submit name=\"newFolder\" value=\"New
Folder\" />");
- out.append("<input type=submit name=\"List\" value=\"List\"
/>");
- out.append("<input type=submit name=\"help\" value=\"Help!\"
/>");
- out.append("<input type=submit name = \"find\"
value=\"Find!\"/>\n");
- out.append("<form><input type=\"file\" name=\"datafile\" /> ");
- out.append("<input type=submit name=\"Import\" value=\"Import
From File\"/> ");
- out.append("<form><input type=\"text\" name=\"datafile2\" /> ");
- out.append("<input type=submit name=\"Export\" value=\"Export
To File\"/> </form>");
- out.append("<form><input type=\"file\" name=\"datafile3\" /> ");
- out.append("<input type=submit name=\"Reload\" value=\"Load
Configuration\"/> ");
- out.append("<form><input type=\"file\" name=\"datafile4\" /> ");
- out.append("<input type=submit name=\"Save\" value=\"Save
Configuration\"/> ");
+ out.append("</p><p><input type=\"radio\" name=\"choice\"
value=\"index\">Index");
+ out.append("<input type=\"text\" name=\"index\"
value=\"").append(index).append("\" size=50/><br/>");
+
+
+
+ out.append("<br/><br/><p><input type=\"file\" name=\"datafile\"
/> ");
+ out.append("<select name=\"actionList\" >");
+ out.append("<option value=\"Import From File\">Import From
File</option>");
+ out.append("<option value=\"Export To File\">Export To
File</option>");
+ out.append("<option value=\"Load Configuration\">Load
Configuration</option>");
+ out.append("<option value=\"Save Configuration\">Save
Configuration</option></select>");
+ out.append("<input type=submit name=\"go\" value=\"Go!\" />");
+ // out.append("<input type=submit name=\"Import\" value=\"Import
From File\"/> ");
+ //out.append("<input type=\"text\" name=\"datafile2\" /> ");
+ // out.append("<input type=submit name=\"Export\" value=\"Export
To File\"/><br/>");
+ //out.append("<input type=\"file\" name=\"datafile3\" /> ");
+ //out.append("<input type=submit name=\"Reload\" value=\"Load
Configuration\"/> ");
+ //out.append("<input type=\"file\" name=\"datafile4\" /> ");
+ // out.append("<input type=submit name=\"Save\" value=\"Save
Configuration\"/></p> ");
// index - key to index
// search - text to search for
}
@@ -186,11 +202,13 @@
appendDefaultPageStart(out, stylesheet);
appendDefaultPostFields(out, search, indexuri);
appendDefaultPageEnd(out);
-
+ if(((request.getParam("find")).equals("Find!")) &&
!choice.equals("folder") && !choice.equals("index"))
+ out.append("Choose an index or a folder for search\n");
if(choice.equals("folder")){
if((request.getParam("find")).equals("Find!"))
{
String folder = request.getParam("folderList");
+ try{
String[] indices = (String
[])indexList.get(folder);
for(int i =0;i<indices.length;i++)
{try{
@@ -199,18 +217,23 @@
Logger.error(this, "Search
for "+search+" in folder "+folder+" failed "+e.toString(), e);
}
}
+ }
+ catch(Exception e){
+ out.append("No folder chosen\n");
+ }
}
}
else if((request.getParam("newFolder")).equals("New Folder")){
out.append("<p>Name of the new Folder<br/>");
- out.append("<form><input type=\"text\"
name=\"newfolder\" size=80/> ");
+ out.append("<form><input type=\"text\"
name=\"newfolder\" size=20/> ");
out.append("<input type=submit value=\"Add\"
name=\"addNew\" />");
}
else if((request.getParam("addNew")).equals("Add")){
try{
String newFolder =
request.getParam("newfolder");
- indexList.put(newFolder, new String[]{new
String("0")});
- out.append("New folder "+newFolder+" added.
Kindly refresh the page<br/> ");
+ if(newFolder.equals("")) out.append("Invalid
folder name \n");
+ else {indexList.put(newFolder, new String[]{new
String("0")});
+ out.append("New folder "+newFolder+" added.
Kindly refresh the page<br/> ");}
}
catch(Exception e){
Logger.error(this, "Could not add new folder
"+e.toString(), e);
@@ -228,9 +251,19 @@
out.append("<h3>List</h3>");
out.append("<p>List the indices in the current
folder<br/>");
}
+ else if((request.getParam("delete")).equals("Delete Folder")){
+ String folder = request.getParam("folderList");
+ if(folder.equals("")) out.append("Choose an existing
folder for deletion");
+ else{
+ indexList.remove(folder);
+ out.append("\""+folder+"\" deleted
successfully. Kindly refresh the page\n");
+ }
+ }
else if((request.getParam("addToFolder")).equals("Add to
folder")){
String folder = request.getParam("folderList");
indexuri = request.getParam("index",DEFAULT_INDEX_SITE);
+ if(folder.equals("") ||
indexuri.equals(""))out.append("Index \""+indexuri+"\" could not be added to
folder \""+folder+"\"");
+ else{
DEFAULT_INDEX_SITE = indexuri;
try{
String[] old = (String [])
indexList.get(folder);
@@ -253,43 +286,53 @@
catch(Exception e){
Logger.error(this, "Index "+indexuri+" could
not be added to folder "+folder+" "+e.toString(), e);
}
+ }
}
else if((request.getParam("List")).equals("List")){
String folder = request.getParam("folderList");
+ try{
String[] indices = (String[]) indexList.get(folder);
for(int i = 0;i<indices.length;i++){
out.append("<p>\n<table
class=\"librarian-result\" width=\"100%\" border=1><tr><td align=center
bgcolor=\"#D0D0D0\" class=\"librarian-result-url\">\n");
out.append(" <A
HREF=\"").append(indices[i]).append("\">").append(indices[i]).append("</A>");
out.append("</td></tr><tr><td align=left
class=\"librarian-result-summary\">\n");
out.append("</td></tr></table>\n");
+ }}
+ catch(Exception e){
+ out.append("No folder chosen for listing \n");
}
}
- else if((request.getParam("Save")).equals("Save
Configuration")){
+ else if(choice.equals("index")){
try{
- String file = request.getParam("datafile4");
+ if(indexuri.equals(""))out.append("Specify a
valid index \n");
+ else
searchStr(out,search,indexuri,stylesheet);}
+ catch(Exception e){
+ Logger.error(this, "Searching for the word
"+search+" in index "+indexuri+" failed "+e.toString(), e);
+ }
+ }
+ else if((request.getParam("actionList")).equals("Save
Configuration")){
+ try{
+ String file = request.getParam("datafile");
if(file.equals("")) file = configfile;
save(out,file);
- out.append("Saved Configuration");
+ out.append("Saved Configuration to file
\""+file+"\"");
}
catch(Exception e){
Logger.error(this, "Configuration could not be
saved "+e.toString(), e);
}
}
- else if(choice.equals("index")){
- try{
- searchStr(out,search,indexuri,stylesheet);}
- catch(Exception e){
- Logger.error(this, "Searching for the word
"+search+" in index "+indexuri+" failed "+e.toString(), e);
- }
- }
- else if((request.getParam("Reload")).equals("Load
Configuration")){
- String file = request.getParam("datafile3");
+
+ else if((request.getParam("actionList")).equals("Load
Configuration")){
+ String file = request.getParam("datafile");
+ if(file.equals("")) out.append("Choose an existing file
\n");
+ else{
reloadOld(file);
- out.append("Loaded Configuration");
+ out.append("Loaded Configuration");}
}
- else if((request.getParam("Import")).equals("Import From
File")){
+ else if((request.getParam("go")).equals("Go!")){
+ if((request.getParam("actionList")).equals("Import From
File")){
String folder = request.getParam("folderList");
String file = request.getParam("datafile");
Vector indices=new Vector();
@@ -323,13 +366,16 @@
inp.close();
}
- catch(Exception e){}
+ catch(Exception e){
+ out.append("Index list from file \" "+file+"\"
could not be imported to folder \""+folder+"\"");
+ Logger.error(this, "Index list from "+file+"
could not be imported to folder "+folder+" "+e.toString(), e);
+ }
}
- else if((request.getParam("Export")).equals("Export To File")){
+ else if((request.getParam("actionList")).equals("Export To
File")){
String folder = request.getParam("folderList");
- String file = request.getParam("datafile2");
+ String file = request.getParam("datafile");
try{
FileWriter outp = new FileWriter(file,true);
@@ -339,9 +385,12 @@
}
outp.close();
}
- catch(Exception e){Logger.error(this, "Could not write
configuration to external file "+e.toString(),e );}
+ catch(Exception e){
+ out.append("Could not write index list of
folder \""+folder+"\" to external file \""+file+"\"");
+ Logger.error(this, "Could not write index list
to external file "+e.toString(),e );}
return out.toString();
}
+ }
return out.toString();
@@ -435,9 +484,6 @@
Logger.error(this, "Spider: Error while serializing XML
(transformFactory.newTransformer()): "+e.toString());
// return out.toString();
}
-
-
-
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Spider: indexes regenerated.");
@@ -516,6 +562,7 @@
private void searchStr(StringBuffer out,String search,String
indexuri,String stylesheet) throws Exception{
if (search.equals("")) {
+ out.append("Give a valid string to search\n");
return;
}
try {
@@ -560,7 +607,7 @@
}
}}
catch(Exception e){
- out.append("Could not complete search for
"+search +"in "+indexuri+e.toString());
+ out.append("Could not complete search for
"+search +" in "+indexuri+e.toString());
Logger.error(this, "Could not complete search
for "+search +"in "+indexuri+e.toString(), e);
}
// Output results
@@ -657,7 +704,9 @@
//search for the word in the given subIndex
fileuris = new Vector();
HighLevelSimpleClient hlsc = pr.getHLSimpleClient();
+ try{
FreenetURI u = new FreenetURI(DEFAULT_INDEX_SITE +
"index_"+subIndex+".xml");
+
FetchResult res;
while(true) {
try {
@@ -671,13 +720,17 @@
}
}
word = str; //word to be searched
+
SAXParserFactory factory = SAXParserFactory.newInstance();
try {
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(res.asBucket().getInputStream(), new
LibrarianHandler() );
} catch (Throwable err) {
err.printStackTrace ();}
-
+ }
+ catch(Exception e){
+ Logger.error(this,
DEFAULT_INDEX_SITE+"index_"+subIndex+".xml could not be opened "+e.toString(),
e);
+ }
return fileuris;
}
@@ -689,6 +742,7 @@
*/
public String getURI(String id) throws Exception
{
+ try{
DocumentBuilderFactory docFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(DEFAULT_FILE);
@@ -699,6 +753,12 @@
String fileId = file.getAttribute("id");
if(fileId.equals(id)) return file.getAttribute("key");
}
+
+ }
+ catch(Exception e){
+ Logger.error(this, "uri for id ="+id+" could not be
retrieved "+e.toString(), e);
+
+ }
return "not available";
}