svn commit: r541504 [3/7] - in /xml/xindice/trunk: ./ config/ java/scratchpad/webadmin/ java/src/org/apache/xindice/client/xmldb/embed/ java/src/org/apache/xindice/core/ java/src/org/apache/xindice/core/data/ java/src/org/apache/xindice/core/filer/ jav...
[email protected] Fri, 25 May 2007 01:43:43 -0000
Newsgroups
gmane.text.xml.xindice.devel
Message-ID
<[email protected] >
Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java?view=diff&rev=541504&r1=541498&r2=541504
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java Thu May 24 18:43:39 2007
@@ -27,241 +27,94 @@
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
-import org.apache.avalon.fortress.impl.DefaultContainer;
-import org.apache.avalon.fortress.util.CompositeException;
import org.apache.xindice.server.Xindice;
+import org.apache.xindice.webadmin.WebAdminManager;
/**
* Xindice Html Viewer.
- *
+ *
* @author <a href="mailto:[email protected] ">Jan Metzner</a>
* @version $Id$
*/
-public class HtmlViewerComponent extends DefaultContainer {
-
+public abstract class HtmlViewerComponent {
static Object[][] entitiesArray =
- { { "quot", new Integer(34)}, // " - double-quote
- {
- "amp", new Integer(38)
- }, // & - ampersand
- {
- "lt", new Integer(60)
- }, // < - less-than
- {
- "gt", new Integer(62)
- }, // > - greater-than
- {
- "nbsp", new Integer(160)
- }, // non-breaking space
- {
- "copy", new Integer(169)
- }, // ? - copyright
- {
- "reg", new Integer(174)
- }, // ? - registered trademark
- {
- "Agrave", new Integer(192)
- }, // ? - uppercase A, grave accent
- {
- "Aacute", new Integer(193)
- }, // ? - uppercase A, acute accent
- {
- "Acirc", new Integer(194)
- }, // ? - uppercase A, circumflex accent
- {
- "Atilde", new Integer(195)
- }, // ? - uppercase A, tilde
- {
- "Auml", new Integer(196)
- }, // ? - uppercase A, umlaut
- {
- "Aring", new Integer(197)
- }, // ? - uppercase A, ring
- {
- "AElig", new Integer(198)
- }, // ? - uppercase AE
- {
- "Ccedil", new Integer(199)
- }, // ? - uppercase C, cedilla
- {
- "Egrave", new Integer(200)
- }, // ? - uppercase E, grave accent
- {
- "Eacute", new Integer(201)
- }, // ? - uppercase E, acute accent
- {
- "Ecirc", new Integer(202)
- }, // ? - uppercase E, circumflex accent
- {
- "Euml", new Integer(203)
- }, // ? - uppercase E, umlaut
- {
- "Igrave", new Integer(204)
- }, // ? - uppercase I, grave accent
- {
- "Iacute", new Integer(205)
- }, // ? - uppercase I, acute accent
- {
- "Icirc", new Integer(206)
- }, // ? - uppercase I, circumflex accent
- {
- "Iuml", new Integer(207)
- }, // ? - uppercase I, umlaut
- {
- "ETH", new Integer(208)
- }, // ? - uppercase Eth, Icelandic
- {
- "Ntilde", new Integer(209)
- }, // ? - uppercase N, tilde
- {
- "Ograve", new Integer(210)
- }, // ? - uppercase O, grave accent
- {
- "Oacute", new Integer(211)
- }, // ? - uppercase O, acute accent
- {
- "Ocirc", new Integer(212)
- }, // ? - uppercase O, circumflex accent
- {
- "Otilde", new Integer(213)
- }, // ? - uppercase O, tilde
- {
- "Ouml", new Integer(214)
- }, // ? - uppercase O, umlaut
- {
- "Oslash", new Integer(216)
- }, // ? - uppercase O, slash
- {
- "Ugrave", new Integer(217)
- }, // ? - uppercase U, grave accent
- {
- "Uacute", new Integer(218)
- }, // ? - uppercase U, acute accent
- {
- "Ucirc", new Integer(219)
- }, // ? - uppercase U, circumflex accent
- {
- "Uuml", new Integer(220)
- }, // ? - uppercase U, umlaut
- {
- "Yacute", new Integer(221)
- }, // ? - uppercase Y, acute accent
- {
- "THORN", new Integer(222)
- }, // ? - uppercase THORN, Icelandic
- {
- "szlig", new Integer(223)
- }, // ? - lowercase sharps, German
- {
- "agrave", new Integer(224)
- }, // ? - lowercase a, grave accent
- {
- "aacute", new Integer(225)
- }, // ? - lowercase a, acute accent
- {
- "acirc", new Integer(226)
- }, // ? - lowercase a, circumflex accent
- {
- "atilde", new Integer(227)
- }, // ? - lowercase a, tilde
- {
- "auml", new Integer(228)
- }, // ? - lowercase a, umlaut
- {
- "aring", new Integer(229)
- }, // ? - lowercase a, ring
- {
- "aelig", new Integer(230)
- }, // ? - lowercase ae
- {
- "ccedil", new Integer(231)
- }, // ? - lowercase c, cedilla
- {
- "egrave", new Integer(232)
- }, // ? - lowercase e, grave accent
- {
- "eacute", new Integer(233)
- }, // ? - lowercase e, acute accent
- {
- "ecirc", new Integer(234)
- }, // ? - lowercase e, circumflex accent
- {
- "euml", new Integer(235)
- }, // ? - lowercase e, umlaut
- {
- "igrave", new Integer(236)
- }, // ? - lowercase i, grave accent
- {
- "iacute", new Integer(237)
- }, // ? - lowercase i, acute accent
- {
- "icirc", new Integer(238)
- }, // ? - lowercase i, circumflex accent
- {
- "iuml", new Integer(239)
- }, // ? - lowercase i, umlaut
- {
- "igrave", new Integer(236)
- }, // ? - lowercase i, grave accent
- {
- "iacute", new Integer(237)
- }, // ? - lowercase i, acute accent
- {
- "icirc", new Integer(238)
- }, // ? - lowercase i, circumflex accent
- {
- "iuml", new Integer(239)
- }, // ? - lowercase i, umlaut
- {
- "eth", new Integer(240)
- }, // ? - lowercase eth, Icelandic
- {
- "ntilde", new Integer(241)
- }, // ? - lowercase n, tilde
- {
- "ograve", new Integer(242)
- }, // ? - lowercase o, grave accent
- {
- "oacute", new Integer(243)
- }, // ? - lowercase o, acute accent
- {
- "ocirc", new Integer(244)
- }, // ? - lowercase o, circumflex accent
- {
- "otilde", new Integer(245)
- }, // ? - lowercase o, tilde
- {
- "ouml", new Integer(246)
- }, // ? - lowercase o, umlaut
- {
- "oslash", new Integer(248)
- }, // ? - lowercase o, slash
- {
- "ugrave", new Integer(249)
- }, // ? - lowercase u, grave accent
- {
- "uacute", new Integer(250)
- }, // ? - lowercase u, acute accent
- {
- "ucirc", new Integer(251)
- }, // ? - lowercase u, circumflex accent
- {
- "uuml", new Integer(252)
- }, // ? - lowercase u, umlaut
- {
- "yacute", new Integer(253)
- }, // ? - lowercase y, acute accent
- {
- "thorn", new Integer(254)
- }, // ? - lowercase thorn, Icelandic
- {
- "yuml", new Integer(255)
- }, // ? - lowercase y, umlaut
- {
- "euro", new Integer(8364)
- }, // Euro symbol
- };
+ {{"quot", new Integer(34)}, // " - double-quote
+ {"amp", new Integer(38)}, // & - ampersand
+ {"lt", new Integer(60)}, // < - less-than
+ {"gt", new Integer(62)}, // > - greater-than
+ {"nbsp", new Integer(160)}, // non-breaking space
+ {"copy", new Integer(169)}, // ? - copyright
+ {"reg", new Integer(174)}, // ? - registered trademark
+ {"Agrave", new Integer(192)}, // ? - uppercase A, grave accent
+ {"Aacute", new Integer(193)}, // ? - uppercase A, acute accent
+ {"Acirc", new Integer(194)}, // ? - uppercase A, circumflex accent
+ {"Atilde", new Integer(195)}, // ? - uppercase A, tilde
+ {"Auml", new Integer(196)}, // ? - uppercase A, umlaut
+ {"Aring", new Integer(197)}, // ? - uppercase A, ring
+ {"AElig", new Integer(198)}, // ? - uppercase AE
+ {"Ccedil", new Integer(199)}, // ? - uppercase C, cedilla
+ {"Egrave", new Integer(200)}, // ? - uppercase E, grave accent
+ {"Eacute", new Integer(201)}, // ? - uppercase E, acute accent
+ {"Ecirc", new Integer(202)}, // ? - uppercase E, circumflex accent
+ {"Euml", new Integer(203)}, // ? - uppercase E, umlaut
+ {"Igrave", new Integer(204)}, // ? - uppercase I, grave accent
+ {"Iacute", new Integer(205)}, // ? - uppercase I, acute accent
+ {"Icirc", new Integer(206)}, // ? - uppercase I, circumflex accent
+ {"Iuml", new Integer(207)}, // ? - uppercase I, umlaut
+ {"ETH", new Integer(208)}, // ? - uppercase Eth, Icelandic
+ {"Ntilde", new Integer(209)}, // ? - uppercase N, tilde
+ {"Ograve", new Integer(210)}, // ? - uppercase O, grave accent
+ {"Oacute", new Integer(211)}, // ? - uppercase O, acute accent
+ {"Ocirc", new Integer(212)}, // ? - uppercase O, circumflex accent
+ {"Otilde", new Integer(213)}, // ? - uppercase O, tilde
+ {"Ouml", new Integer(214)}, // ? - uppercase O, umlaut
+ {"Oslash", new Integer(216)}, // ? - uppercase O, slash
+ {"Ugrave", new Integer(217)}, // ? - uppercase U, grave accent
+ {"Uacute", new Integer(218)}, // ? - uppercase U, acute accent
+ {"Ucirc", new Integer(219)}, // ? - uppercase U, circumflex accent
+ {"Uuml", new Integer(220)}, // ? - uppercase U, umlaut
+ {"Yacute", new Integer(221)}, // ? - uppercase Y, acute accent
+ {"THORN", new Integer(222)}, // ? - uppercase THORN, Icelandic
+ {"szlig", new Integer(223)}, // ? - lowercase sharps, German
+ {"agrave", new Integer(224)}, // ? - lowercase a, grave accent
+ {"aacute", new Integer(225)}, // ? - lowercase a, acute accent
+ {"acirc", new Integer(226)}, // ? - lowercase a, circumflex accent
+ {"atilde", new Integer(227)}, // ? - lowercase a, tilde
+ {"auml", new Integer(228)}, // ? - lowercase a, umlaut
+ {"aring", new Integer(229)}, // ? - lowercase a, ring
+ {"aelig", new Integer(230)}, // ? - lowercase ae
+ {"ccedil", new Integer(231)}, // ? - lowercase c, cedilla
+ {"egrave", new Integer(232)}, // ? - lowercase e, grave accent
+ {"eacute", new Integer(233)}, // ? - lowercase e, acute accent
+ {"ecirc", new Integer(234)}, // ? - lowercase e, circumflex accent
+ {"euml", new Integer(235)}, // ? - lowercase e, umlaut
+ {"igrave", new Integer(236)}, // ? - lowercase i, grave accent
+ {"iacute", new Integer(237)}, // ? - lowercase i, acute accent
+ {"icirc", new Integer(238)}, // ? - lowercase i, circumflex accent
+ {"iuml", new Integer(239)}, // ? - lowercase i, umlaut
+ {"igrave", new Integer(236)}, // ? - lowercase i, grave accent
+ {"iacute", new Integer(237)}, // ? - lowercase i, acute accent
+ {"icirc", new Integer(238)}, // ? - lowercase i, circumflex accent
+ {"iuml", new Integer(239)}, // ? - lowercase i, umlaut
+ {"eth", new Integer(240)}, // ? - lowercase eth, Icelandic
+ {"ntilde", new Integer(241)}, // ? - lowercase n, tilde
+ {"ograve", new Integer(242)}, // ? - lowercase o, grave accent
+ {"oacute", new Integer(243)}, // ? - lowercase o, acute accent
+ {"ocirc", new Integer(244)}, // ? - lowercase o, circumflex accent
+ {"otilde", new Integer(245)}, // ? - lowercase o, tilde
+ {"ouml", new Integer(246)}, // ? - lowercase o, umlaut
+ {"oslash", new Integer(248)}, // ? - lowercase o, slash
+ {"ugrave", new Integer(249)}, // ? - lowercase u, grave accent
+ {"uacute", new Integer(250)}, // ? - lowercase u, acute accent
+ {"ucirc", new Integer(251)}, // ? - lowercase u, circumflex accent
+ {"uuml", new Integer(252)}, // ? - lowercase u, umlaut
+ {"yacute", new Integer(253)}, // ? - lowercase y, acute accent
+ {"thorn", new Integer(254)}, // ? - lowercase thorn, Icelandic
+ {"yuml", new Integer(255)}, // ? - lowercase y, umlaut
+ {"euro", new Integer(8364)}, // Euro symbol
+ };
static Map entities = new HashMap();
+
static {
for (int i = 0; i < entitiesArray.length; ++i) {
entities.put(entitiesArray[i][1], entitiesArray[i][0]);
@@ -270,7 +123,7 @@
/**
* Turns funky characters into HTML entity equivalents
- *
+ *
* @param unescaped unescaped String.
* @return escaped String.
*/
@@ -280,25 +133,24 @@
/**
* Turns funky characters into HTML entity equivalents
- *
+ *
* @param unescaped unescaped String.
- * @param brake if true a new line will be inserted after every closing tag.
+ * @param brake if true a new line will be inserted after every closing tag.
* @return escaped String.
*/
public static String htmlescape(String unescaped, boolean brake) {
StringBuffer buf = new StringBuffer();
- int i;
- for (i = 0; i < unescaped.length(); ++i) {
+ for (int i = 0; i < unescaped.length(); ++i) {
char ch = unescaped.charAt(i);
- String entity = (String)entities.get(new Integer((int)ch));
+ String entity = (String) entities.get(new Integer((int) ch));
if (entity == null) {
- if (((int)ch) > 128) {
- buf.append("&#" + ((int)ch) + ";");
+ if (((int) ch) > 128) {
+ buf.append("&#").append ((int) ch).append(";");
} else {
buf.append(ch);
}
} else {
- buf.append("&" + entity + ";");
+ buf.append("&").append(entity).append(";");
}
if (brake && ch == '>') {
buf.append("\n");
@@ -307,41 +159,10 @@
return buf.toString();
}
- /** holds the shorthint name of this component */
- protected String thisViewer = "";
-
- /** holds a list of all available viewers */
- protected String[] viewers = null;
-
- public void initialize() throws CompositeException, Exception {
- super.initialize();
- if (m_metaManager != null) {
- this.thisViewer =
- m_metaManager
- .getMetaInfoForClassname(this.getClass().getName())
- .getConfigurationName();
- } else {
- getLogger().debug("cannot set this viewer name");
- }
- if (m_context != null) {
- if (this instanceof HtmlCollectionViewer) {
- viewers = (String[])m_context.get("collectionViewers");
- } else if (this instanceof HtmlResourceViewer) {
- viewers = (String[])m_context.get("resourceViewers");
- }
- } else {
- viewers = new String[0];
- getLogger().debug("cannot set configured viewers");
- }
- }
-
- // ------------------------------------------------------ Protected Methods
+ protected abstract String getName();
- protected ServletOutputStream startViewer(
- String title,
- String path,
- HttpServletResponse res)
- throws ServletException, IOException {
+ protected ServletOutputStream startViewer(String title, String path, HttpServletResponse res)
+ throws ServletException, IOException {
res.setContentType("text/html; charset=utf-8");
ServletOutputStream output = res.getOutputStream();
@@ -350,32 +171,39 @@
return output;
}
- protected void finishViewer(ServletOutputStream output)
- throws IOException {
+ protected void finishViewer(ServletOutputStream output) throws IOException {
output.print(FOOTER);
output.print(HTML_TAIL_SECTION);
output.flush();
}
- protected void printHeader(ServletOutputStream output, String title)
- throws IOException {
+ protected void printHeader(ServletOutputStream output, String title) throws IOException {
output.print(HTML_HEADER_SECTION);
output.print(title);
output.print(END_HTML_HEADER_SECTION);
output.print(LOGO_SECTION);
}
- protected void printTabs(ServletOutputStream output, String path)
- throws IOException {
+ protected void printTabs(ServletOutputStream output, String path) throws IOException {
output.print(START_TABS_SECTION);
+
+ String[] viewers = new String[]{};
+ if (this instanceof HtmlCollectionViewer) {
+ viewers = WebAdminManager.getCollectionViewers();
+ } else if (this instanceof HtmlResourceViewer) {
+ viewers = WebAdminManager.getResourceViewers();
+ } else if (this instanceof HtmlDatabaseViewer) {
+ viewers = WebAdminManager.getDatabaseViewers();
+ }
+
for (int i = 0; i < viewers.length; i++) {
- if (viewers[i].equals(thisViewer)) {
+ if (viewers[i].equals(getName())) {
if (i > 0) {
output.print(TAB_SPACE_SELECTED);
}
output.print(START_TAB_SELECTED);
- output.print(thisViewer);
+ output.print(getName());
output.print(END_TAB);
} else {
if (i > 0) {
@@ -398,7 +226,7 @@
// path section
output.print(LEFT_PATH_SECTION);
- if (path != null || path.length() > 1) {
+ if (path != null && path.length() > 1) {
output.print(path);
} else {
output.print("/");
@@ -408,14 +236,12 @@
output.print(END_PATH_SECTION);
}
- protected void printStartTable(String title, ServletOutputStream output)
- throws IOException {
- String[] titles = { title };
+ protected void printStartTable(String title, ServletOutputStream output) throws IOException {
+ String[] titles = {title};
printStartTable(titles, output);
}
- protected void printStartTable(String[] titles, ServletOutputStream output)
- throws IOException {
+ protected void printStartTable(String[] titles, ServletOutputStream output) throws IOException {
output.print(START_TABLE);
output.print(START_TABLE_ROW);
@@ -432,19 +258,16 @@
output.print(END_TABLE_ROW);
}
- protected void printEndTable(ServletOutputStream output)
- throws IOException {
+ protected void printEndTable(ServletOutputStream output) throws IOException {
output.print(END_TABLE);
}
- protected void printTableRow(String content, ServletOutputStream output)
- throws IOException {
- String[] contents = { content };
+ protected void printTableRow(String content, ServletOutputStream output) throws IOException {
+ String[] contents = {content};
printTableRow(contents, output);
}
- protected void printTableRow(String[] contents, ServletOutputStream output)
- throws IOException {
+ protected void printTableRow(String[] contents, ServletOutputStream output) throws IOException {
output.print(START_TABLE_ROW);
for (int i = 0; i < contents.length; i++) {
@@ -460,27 +283,20 @@
output.print(END_TABLE_ROW);
}
- protected void printStartSingleTableBox(ServletOutputStream output)
- throws IOException {
+ protected void printStartSingleTableBox(ServletOutputStream output) throws IOException {
output.print(START_TABLE_ROW);
output.print(START_TABLE_BOX);
}
- protected void printEndSingleTableBox(ServletOutputStream output)
- throws IOException {
+ protected void printEndSingleTableBox(ServletOutputStream output) throws IOException {
output.print(END_TABLE_BOX);
output.print(END_TABLE_ROW);
}
- protected void printSearchFromRow(
- String viewer,
- String query,
- String[] ns,
- ServletOutputStream output)
- throws IOException {
+ protected void printSearchFromRow(String viewer, String query, String[] ns, ServletOutputStream output)
+ throws IOException {
query = query.replaceAll("\"", """);
- //query.replace('\"', '#');
output.print(START_TABLE_ROW);
output.print(START_TABLE_BOX);
@@ -530,7 +346,7 @@
// ---------------------------------------------------- Protected Constants
protected static final String HTML_HEADER_SECTION =
- "<html> \n"
+ "<html> \n"
+ "<head> \n"
+ "<style type=\"text/css\"><!-- \n"
+ "small { \n"
@@ -615,133 +431,133 @@
+ " text-align: left; \n"
+ " font-size: 12px; \n"
+ "} \n"
- +
- /* xml highlighting */
- ".xml-misc, .xml-element-name, .xml-attribute-name, .xml-attribute-content, "
- + ".xml-element-content, .xml-comment, .xml-processing, .xml-cdata { \n"
- + " font-family: verdana,sans-serif; \n"
- + " font-size: 12px; \n"
- + "} \n"
- + ".xml-misc { \n"
- + " color: #000000; \n"
- + "} \n"
- + ".xml-element-name { \n"
- + " color: #cc0000; \n"
- + "} \n"
- + ".xml-attribute-name { \n"
- + " color: #660099; \n"
- + "} \n"
- + ".xml-attribute-content { \n"
- + " color: #000099; \n"
- + "} \n"
- + ".xml-element-content { \n"
- + " color: #000000; \n"
- + "} \n"
- + ".xml-comment { \n"
- + " color: #006600; \n"
- + "} \n"
- + ".xml-processing { \n"
- + " color: #cc0000; \n"
- + "} \n"
- + ".xml-cdata { \n"
- + " color: #006600; \n"
- + "} \n"
- +
- /* forms */
- ".search-form, .create-form, .upload-form input { \n"
- + " color: #294563; \n"
- + " font-family: verdana,sans-serif; \n"
- + " font-weight: bold; \n"
- + " text-align: left; \n"
- + " font-size: 12px; \n"
- + " border: 0px none #ffffff; \n"
- + "} \n"
- + ".search-form td[colspan=3] { \n"
- + " width: 480px; \n"
- + "} \n"
- + ".search-form input { \n"
- + " border: 2px solid #294563; \n"
- + " background-color: #f0f0ff; \n"
- + " width: 200px; \n"
- + "} \n"
- + ".search-form input[name=query] { \n"
- + " border: 2px solid #294563; \n"
- + " background-color: #f0f0ff; \n"
- + " width: 400px; \n"
- + "} \n"
- + ".search-form td, .create-form td, .upload-form td { \n"
- + " border: 0px none #ffffff; \n"
- + "} \n"
- + ".search-form select { \n"
- + " font-size: 10px; \n"
- + " background-color: #f0f0ff; \n"
- + "} \n"
- + ".create-form td[colspan=2] { \n"
- + " width: 450px; \n"
- + "} \n"
- + ".create-form input { \n"
- + " border: 2px solid #294563; \n"
- + " background-color: #f0f0ff; \n"
- + " width: 300px; \n"
- + "} \n"
- + "select { \n"
- + " font-size: 10px; \n"
- + " background-color: #f0f0ff; \n"
- + "} \n"
- + ".upload-form input { \n"
- + " border: 2px solid #294563; \n"
- + " background-color: #f0f0ff; \n"
- + "} \n"
- + "--></style> \n"
- + "<title>";
+ +
+ /* xml highlighting */
+ ".xml-misc, .xml-element-name, .xml-attribute-name, .xml-attribute-content, "
+ + ".xml-element-content, .xml-comment, .xml-processing, .xml-cdata { \n"
+ + " font-family: verdana,sans-serif; \n"
+ + " font-size: 12px; \n"
+ + "} \n"
+ + ".xml-misc { \n"
+ + " color: #000000; \n"
+ + "} \n"
+ + ".xml-element-name { \n"
+ + " color: #cc0000; \n"
+ + "} \n"
+ + ".xml-attribute-name { \n"
+ + " color: #660099; \n"
+ + "} \n"
+ + ".xml-attribute-content { \n"
+ + " color: #000099; \n"
+ + "} \n"
+ + ".xml-element-content { \n"
+ + " color: #000000; \n"
+ + "} \n"
+ + ".xml-comment { \n"
+ + " color: #006600; \n"
+ + "} \n"
+ + ".xml-processing { \n"
+ + " color: #cc0000; \n"
+ + "} \n"
+ + ".xml-cdata { \n"
+ + " color: #006600; \n"
+ + "} \n"
+ +
+ /* forms */
+ ".search-form, .create-form, .upload-form input { \n"
+ + " color: #294563; \n"
+ + " font-family: verdana,sans-serif; \n"
+ + " font-weight: bold; \n"
+ + " text-align: left; \n"
+ + " font-size: 12px; \n"
+ + " border: 0px none #ffffff; \n"
+ + "} \n"
+ + ".search-form td[colspan=3] { \n"
+ + " width: 480px; \n"
+ + "} \n"
+ + ".search-form input { \n"
+ + " border: 2px solid #294563; \n"
+ + " background-color: #f0f0ff; \n"
+ + " width: 200px; \n"
+ + "} \n"
+ + ".search-form input[name=query] { \n"
+ + " border: 2px solid #294563; \n"
+ + " background-color: #f0f0ff; \n"
+ + " width: 400px; \n"
+ + "} \n"
+ + ".search-form td, .create-form td, .upload-form td { \n"
+ + " border: 0px none #ffffff; \n"
+ + "} \n"
+ + ".search-form select { \n"
+ + " font-size: 10px; \n"
+ + " background-color: #f0f0ff; \n"
+ + "} \n"
+ + ".create-form td[colspan=2] { \n"
+ + " width: 450px; \n"
+ + "} \n"
+ + ".create-form input { \n"
+ + " border: 2px solid #294563; \n"
+ + " background-color: #f0f0ff; \n"
+ + " width: 300px; \n"
+ + "} \n"
+ + "select { \n"
+ + " font-size: 10px; \n"
+ + " background-color: #f0f0ff; \n"
+ + "} \n"
+ + ".upload-form input { \n"
+ + " border: 2px solid #294563; \n"
+ + " background-color: #f0f0ff; \n"
+ + "} \n"
+ + "--></style> \n"
+ + "<title>";
protected static final String END_HTML_HEADER_SECTION =
- "</title> \n" + "<body> \n\n";
+ "</title> \n" + "<body> \n\n";
protected static final String LOGO_SECTION =
- "<table width=\"100%\"><tr> \n"
+ "<table width=\"100%\"><tr> \n"
+ "<td width=\"100%\"> </td> \n"
+ "<td align=\"right\" width=\"1px\"> \n"
+ "<div class=\"logo\"> xindice <div class=\"smallLogo\">(zeen-de-chay)</div> </div> \n"
+ "</td></tr></table> \n";
protected static final String START_TABS_SECTION =
- "<table class=\"tabs\" cellspacing=\"0\" cellpadding=\"0\"> \n"
+ "<table class=\"tabs\" cellspacing=\"0\" cellpadding=\"0\"> \n"
+ " <tr> \n";
protected static final String END_TABS_SECTION =
- " <td width=\"1\" bgcolor=\"#808080\"><img width=\"1\" height=\"\" alt=\"\"></td> \n"
+ " <td width=\"1\" bgcolor=\"#808080\"><img width=\"1\" height=\"\" alt=\"\"></td> \n"
+ " </tr> \n"
+ "</table> \n";
protected static final String START_TAB =
- " <td class=\"unselected\"> ";
+ " <td class=\"unselected\"> ";
protected static final String START_TAB_SELECTED =
- " <td class=\"selected\"> ";
+ " <td class=\"selected\"> ";
protected static final String TAB_SPACE =
- " <td width=\"1\" bgcolor=\"#808080\"><img width=\"1\" height=\"\" alt=\"\"></td> \n"
+ " <td width=\"1\" bgcolor=\"#808080\"><img width=\"1\" height=\"\" alt=\"\"></td> \n"
+ " <td width=\"1\" bgcolor=\"#ffffff\"><img width=\"1\" height=\"1\" alt=\"\"></td> \n";
protected static final String TAB_SPACE_SELECTED =
- " <td width=\"1\" bgcolor=\"#808080\"><img width=\"1\" height=\"\" alt=\"\"></td> \n";
+ " <td width=\"1\" bgcolor=\"#808080\"><img width=\"1\" height=\"\" alt=\"\"></td> \n";
protected static final String END_TAB = " </td> \n";
protected static final String LEFT_PATH_SECTION =
- "<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"100%\"> \n"
+ "<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"100%\"> \n"
+ " <tr> \n"
+ " <td class=\"misc\"> ";
protected static final String RIGHT_PATH_SECTION =
- "</td> \n" + " <td class=\"misc-right\">";
+ "</td> \n" + " <td class=\"misc-right\">";
protected static final String END_PATH_SECTION =
- "</td> \n" + " </tr> \n" + "</table> \n" + "<br /> \n";
+ "</td> \n" + " </tr> \n" + "</table> \n" + "<br /> \n";
protected static final String START_TABLE =
- "<table cellspacing=\"0\" cellpadding=\"3\" class=\"contents\"> \n";
+ "<table cellspacing=\"0\" cellpadding=\"3\" class=\"contents\"> \n";
protected static final String END_TABLE = "</table> \n";
@@ -754,10 +570,10 @@
protected static final String END_TABLE_BOX = "</td> \n";
protected static final String START_TABLE_BOX_TITLE =
- "<td class=\"title\"> \n";
+ "<td class=\"title\"> \n";
protected static final String FOOTER =
- "\n<br /> \n"
+ "\n<br /> \n"
+ "<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"100%\"> \n"
+ " <tr> \n"
+ " <td class=\"misc\"> "
@@ -774,72 +590,72 @@
/* search form */
protected static final String START_SEARCH_FORM =
- "<form action=\"\" method=\"get\"> \n"
+ "<form action=\"\" method=\"get\"> \n"
+ "<table class=\"search-form\"> \n";
protected static final String SEARCH_FROM_START_HIDDEN_VIEWER =
- "<input name=\"viewer\" value=\"";
+ "<input name=\"viewer\" value=\"";
protected static final String SEARCH_FROM_END_HIDDEN_VIEWER =
- "\" type=\"hidden\" /> \n";
+ "\" type=\"hidden\" /> \n";
protected static final String SEARCH_FROM_START_QUERY =
- "<tr><td colspan=\"3\"> \n"
+ "<tr><td colspan=\"3\"> \n"
+ " query: \n"
+ " <input name=\"query\" type=\"text\" value=\"";
protected static final String SEARCH_FROM_END_QUERY =
- "\" /><br /><div style=\"text-align:right;\">"
+ "\" /><br /><div style=\"text-align:right;\">"
+ "<input type=\"submit\" name=\"submit\" value=\"search\" "
+ " style=\"margin-top:10px; width:auto;\"/> \n"
+ "</div><br /> \n"
+ "</td></tr> \n";
protected static final String SEARCH_FROM_START_NS_HEADER =
- "<tr><td colspan=\"2\">optional namespaces:</td> \n"
- + "<td>nuber of ns: <select name=\"nssize\" size=\"1\"> \n";
+ "<tr><td colspan=\"2\">optional namespaces:</td> \n"
+ + "<td>number of ns: <select name=\"nssize\" size=\"1\"> \n";
protected static final String SEARCH_FROM_START_NS_HEADER_OPT = "<option>";
protected static final String SEARCH_FROM_START_NS_HEADER_OPT_SEL =
- "<option selected=\"selected\">";
+ "<option selected=\"selected\">";
protected static final String SEARCH_FROM_END_NS_HEADER_OPT = "</option>";
protected static final String SEARCH_FROM_END_NS_HEADER =
- "</select></td></tr>"
+ "</select></td></tr>"
+ "<tr><td> </td><td>prefix</td><td>uri</td></tr> \n"
+ "<tr> \n";
protected static final String SEARCH_FROM_START_NS = "<td>ns";
protected static final String SEARCH_FROM_START_NS_PREFIX =
- ":</td> \n" + "<td><input name=\"prefix";
+ ":</td> \n" + "<td><input name=\"prefix";
protected static final String SEARCH_FROM_END_NS_PREFIX =
- "\" type=\"text\" value=\"";
+ "\" type=\"text\" value=\"";
protected static final String SEARCH_FROM_START_NS_URI =
- "\"/></td> \n" + "<td><input name=\"uri";
+ "\"/></td> \n" + "<td><input name=\"uri";
protected static final String SEARCH_FROM_MIDDLE_NS_URI =
- "\" type=\"text\" value=\"";
+ "\" type=\"text\" value=\"";
protected static final String SEARCH_FROM_END_NS_URI =
- "\" /></td> \n" + "</tr> \n";
+ "\" /></td> \n" + "</tr> \n";
protected static final String END_SEARCH_FORM =
- "</table> \n" + "</form> \n";
+ "</table> \n" + "</form> \n";
protected static final String START_CONFIG_FORM =
- "<form action=\"?viewer=config\" method=\"post\"><textarea " +
- "name=\"config\" style=\"width:100%;\" rows=\"8\">";
+ "<form action=\"?viewer=config\" method=\"post\"><textarea " +
+ "name=\"config\" style=\"width:100%;\" rows=\"8\">";
protected static final String END_CONFIG_FORM =
- "</textarea><br /><input type=\"submit\" name=\"submit\" value=\"update\"></form>";
+ "</textarea><br /><input type=\"submit\" name=\"submit\" value=\"update\"></form>";
protected static final String CREATE_FORM_START =
- "<form action=\"\" method=\"get\"> \n"
+ "<form action=\"\" method=\"get\"> \n"
+ "<input name=\"viewer\" value=\"create\" type=\"hidden\" /> \n"
+ "<table class=\"create-form\"> \n"
+ "<tr><td colspan=\"2\"> \n"
@@ -858,10 +674,10 @@
+ " <option selected=\"selected\">";
protected static final String CREATE_FORM_META_DEFAULT =
- "</option> \n" + " <option>";
+ "</option> \n" + " <option>";
protected static final String CREATE_FORM_META_END =
- "</option> \n"
+ "</option> \n"
+ " </select> \n"
+ "</td> \n"
+ " </tr> \n"
@@ -872,10 +688,10 @@
+ " <option selected=\"selected\">";
protected static final String CREATE_FORM_COMPRESSED_DEFAULT =
- "</option> \n" + " <option>";
+ "</option> \n" + " <option>";
protected static final String CREATE_FORM_COMPRESSED_END =
- "</option> \n"
+ "</option> \n"
+ " </select> \n"
+ "</td> \n"
+ " </tr> \n"
@@ -884,27 +700,32 @@
+ "<td><input name=\"filer\" type=\"text\" value=\"";
protected static final String CREATE_FORM_FILER =
- "\"/></td> \n" + " </tr> \n" + " </table> \n" + " </form> \n";
+ "\"/></td> \n" + " </tr> \n" + " </table> \n" + " </form> \n";
protected static final String UPLOAD_FORM =
- "<form action=\"\" method=\"post\" enctype=\"multipart/form-data\"> \n"
+ "<form action=\"\" method=\"post\" enctype=\"multipart/form-data\"> \n"
+ "<table class=\"upload-form\"> \n"
+ "<tr> \n"
+ "<td>upload file: </td> \n"
+ "<td><input name=\"file\" type=\"file\" /></td> \n"
+ "</td></tr> \n"
- + "<tr><td> \n"
- + "type: \n"
- + "<select name=\"type\" size=\"1\"> \n"
+ + "<tr> \n"
+ + "<td>name: </td> \n"
+ + "<td><input name=\"name\" type=\"text\" /></td> \n"
+ + "</td></tr> \n"
+ + "<tr> \n"
+ + "<td>type: </td>\n"
+ + "<td><select name=\"type\" size=\"1\"> \n"
+ " <option>xml</option> \n"
+ " <option selected=\"selected\">detect</option> \n"
+ " <option>binary</option> \n"
+ "</select> \n"
- + "</td><td><center> \n"
- + "overwrite: \n"
- + "no<input type=\"radio\" name=\"overwrite\" value=\"false\" checked=\"checked\" /> \n"
+ + "</td></tr> \n"
+ + "<tr> \n"
+ + "<td>overwrite: </td>\n"
+ + "<td>no<input type=\"radio\" name=\"overwrite\" value=\"false\" checked=\"checked\" /> \n"
+ "yes<input type=\"radio\" name=\"overwrite\" value=\"true\" /> \n"
- + "</center> </td></tr> \n"
+ + "</td></tr> \n"
+ "<tr><td> \n"
+ "<input type=\"submit\" name=\"submit\" value=\"upload\" /> \n"
+ "</td><td> "
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 24 18:43:39 2007
@@ -1 +1 @@
-Author Date Id Revision
+Id Revision Author Date
Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java?view=diff&rev=541504&r1=541498&r2=541504
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java Thu May 24 18:43:39 2007
@@ -27,102 +27,50 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.xindice.core.Collection;
-import org.apache.xindice.util.Configuration;
import org.apache.xindice.util.ReadOnlyException;
-import org.apache.xindice.util.XindiceException;
import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
-import org.apache.xindice.xml.TextWriter;
import org.apache.xindice.xml.Xml2HtmlWriter;
-import org.apache.xindice.xml.dom.DOMParser;
-import org.w3c.dom.Document;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Xindice Html Viewer for Collection configuration.
*
- * @avalon.component
- * @avalon.service type=HtmlCollectionViewer
- * @x-avalon.info name=config
- * @x-avalon.lifestyle type=singleton
- *
* @author <a href="mailto:[email protected] ">Jan Metzner</a>
* @version $Id$
*/
-public class CollectionConfigurationViewer
- extends HtmlViewerComponent
- implements HtmlCollectionViewer {
-
- public void execute(
- HttpServletRequest req,
- HttpServletResponse res,
- Collection col)
- throws ServletException, IOException {
+public class CollectionConfigurationViewer extends HtmlViewerComponent implements HtmlCollectionViewer {
+
+ private static final Log log = LogFactory.getLog(CollectionConfigurationViewer.class);
+
+ public void execute(HttpServletRequest req, HttpServletResponse res, Collection col)
+ throws ServletException, IOException {
String path = col.getCanonicalName();
String title = "Collection Configuration for " + path;
ServletOutputStream output = startViewer(title, path, res);
-
- String configParam = req.getParameter("config");
- if (configParam != null && configParam.length() > 0) {
- printStartTable("Update Configuration", output);
- printStartSingleTableBox(output);
- try {
- Document configDoc =
- DOMParser.toDocument(configParam.getBytes());
- Configuration config = null;
- if (configDoc != null) {
- config = new Configuration(configDoc, false);
- }
- if (config != null) {
- col.setConfig(config);
- col.getDatabase().flushConfig(); // update config
- output.print("<b>Configuration changed! </b>");
- } else {
- output.print("Cannot read Configuration: <br /><pre>");
- output.print(htmlescape(configParam, true));
- output.print("</pre>");
- }
- } catch (XindiceException e1) {
- e1.printStackTrace();
- output.print("Cannot set Configuration: ");
- output.print(e1.getMessage());
- }
- printEndSingleTableBox(output);
- printEndTable(output);
- output.print("<br />");
- }
-
printStartTable(title, output);
printStartSingleTableBox(output);
- String configHtml = "";
try {
Xml2HtmlWriter.write(col.getConfig().getElement(), output);
printEndSingleTableBox(output);
printEndTable(output);
-
- configHtml =
- htmlescape(TextWriter.toString(col.getConfig().getElement()));
-
} catch (ReadOnlyException e) {
- e.printStackTrace();
- output.print("Sorry cannot read configuration: ");
+ log.error(e);
+ output.print("Cannot read configuration: ");
output.print(e.getMessage());
}
- output.print("<br />");
- printStartTable("Edit Configuration", output);
- printStartSingleTableBox(output);
- output.print(START_CONFIG_FORM);
- output.print(configHtml);
- output.print(END_CONFIG_FORM);
- printEndSingleTableBox(output);
- printEndTable(output);
-
printEndSingleTableBox(output);
printEndTable(output);
finishViewer(output);
+ }
+
+ protected String getName() {
+ return "config";
}
}
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 24 18:43:39 2007
@@ -1 +1 @@
-Author Date Id Revision
+Id Revision Author Date
Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java?view=diff&rev=541504&r1=541498&r2=541504
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java Thu May 24 18:43:39 2007
@@ -30,336 +30,258 @@
import org.apache.xindice.core.DBException;
import org.apache.xindice.core.indexer.Indexer;
import org.apache.xindice.util.Configuration;
-import org.apache.xindice.util.ReadOnlyException;
-import org.apache.xindice.webadmin.viewer.*;
import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
+import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
import org.apache.xindice.xml.dom.DocumentImpl;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Xindice Html Viewer for Collection Indexers.
- *
- * @avalon.component
- * @avalon.service type=HtmlCollectionViewer
- * @x-avalon.info name=indexes
- * @x-avalon.lifestyle type=singleton
*
* @author <a href="mailto:[email protected] ">Jan Metzner</a>
* @version $Id$
*/
-public class CollectionIndexesViewer
- extends HtmlViewerComponent
- implements HtmlCollectionViewer {
-
- protected static final String XINDICE_VAL_INDEXER =
- "org.apache.xindice.core.indexer.ValueIndexer";
-
- protected static final String XINDICE_NAME_INDEXER =
- "org.apache.xindice.core.indexer.NameIndexer";
-
- public void execute(HttpServletRequest req, HttpServletResponse res,
- Collection col) throws ServletException, IOException {
-
- String path = col.getCanonicalName();
- String title = "Collection Indexes for "+path;
-
- ServletOutputStream output = startViewer(title, path, res);
-
- String name = req.getParameter("name");
- if(name == null) {
- name = "";
- }
- String pattern = req.getParameter("pattern");
- if(pattern == null) {
- pattern = "";
- }
- String type = req.getParameter("type");
- if(type == null) {
- type = "";
- }
- String pagesize = req.getParameter("pagesize");
- if(pagesize == null) {
- pagesize = "";
- }
- String maxkeysize = req.getParameter("maxkeysize");
- if(maxkeysize == null) {
- maxkeysize = "";
- }
- String update = req.getParameter("update");
- String delete = req.getParameter("delete");
-
- if(update == null && name.length() > 0 && pattern.length() > 0) {
- // create/update index
- try {
- createIndex(col, name, pattern, type, pagesize, maxkeysize);
- // set the default values for the form
- name = "";
- pattern = "";
- type = "";
- pagesize = "";
- maxkeysize = "";
- } catch (DBException e1) {
- e1.printStackTrace();
- printStartTable("Message", output);
- printStartSingleTableBox(output);
- output.println("<b>Cannot update/create Indexer "+name+": "
- +e1.getMessage()+"</b>");
- printEndSingleTableBox(output);
- printEndTable(output);
- output.println("<br />\n");
- } catch (ReadOnlyException e1) {
- e1.printStackTrace();
- printStartTable("Message", output);
- printStartSingleTableBox(output);
- output.println("<b>Cannot update/create Indexer "+name+": "
- +e1.getMessage()+"</b>");
- printEndSingleTableBox(output);
- printEndTable(output);
- output.println("<br />\n");
- }
- } else if(update != null && update.length() > 0) {
- // get index parameters
- try {
- Configuration updateConf = col.getIndexer(update).getConfig();
- name = update;
- pattern = updateConf.getAttribute("pattern");
- type = updateConf.getAttribute("type", "");
- if(updateConf.getAttribute("class", "")
- .equalsIgnoreCase(XINDICE_NAME_INDEXER)) {
- type = "name";
- }
- pagesize = updateConf.getAttribute("pagesize", "");
- maxkeysize = updateConf.getAttribute("maxkeysize", "");
- } catch (DBException e1) { // cannot get indexer
- e1.printStackTrace();
- printStartTable("Message", output);
- printStartSingleTableBox(output);
- output.println("<b>Cannot get Indexer "+update+": "
- +e1.getMessage()+"</b>");
- printEndSingleTableBox(output);
- printEndTable(output);
- output.println("<br />\n");
- }
- } else if(delete != null && delete.length() > 0) {
- printStartTable("Message", output);
- printStartSingleTableBox(output);
- try {
- // delete indexer
- Indexer delIndex = col.getIndexer(delete);
- if(delIndex != null) {
- if(col.dropIndexer(delIndex)) {
- output.println("<b>Indexer "+delete+" deleted!</b>");
- } else {
- output.println("<b>Cannot delete Indexer "+delete+"!</b>");
- }
- } else {
- output.println("<b>Cannot get Indexer "+delete+"!</b>");
- }
- } catch (DBException e1) {
- e1.printStackTrace();
- output.println("<b>Cannot delete Indexer "+delete+": "
- +e1.getMessage()+"</b>");
- }
- printEndSingleTableBox(output);
- printEndTable(output);
- output.println("<br />\n");
- }
-
-
- // form
- printStartTable("Add/Update Index for "+path, output);
- printStartSingleTableBox(output);
- output.print(INDEXES_UPDATE_FORM_1);
- output.print(name);
- output.print(INDEXES_UPDATE_FORM_2);
- output.print(pattern);
- output.print(INDEXES_UPDATE_FORM_3);
- printTypeSelector(type, output);
- output.print(INDEXES_UPDATE_FORM_4);
- output.print(pagesize);
- output.print(INDEXES_UPDATE_FORM_5);
- output.print(maxkeysize);
- output.print(INDEXES_UPDATE_FORM_6);
- printEndSingleTableBox(output);
- printEndTable(output);
-
- output.print("<br />");
- output.flush();
-
- try {
- String[] indexes = col.listIndexers();
- if(indexes.length == 0) {
- String message = "Collection contains no Indexes!";
- printStartTable(message, output);
- printStartSingleTableBox(output);
- output.print(message);
- printEndSingleTableBox(output);
- printEndTable(output);
- } else {
- String[] columnTitles = { "name", "pattern", "class", "type",
- "pagesize", "max key size", "delete" };
- printStartTable(columnTitles, output);
- for(int i = 0; i < indexes.length; i++) {
- Configuration thisConf = col.getIndexer(indexes[i]).getConfig();
- String indexerName = thisConf.getAttribute("name");
- String indexerType = thisConf.getAttribute("type", "");
- String indexerClass = thisConf.getAttribute("class");
- if(indexerClass.equalsIgnoreCase(XINDICE_NAME_INDEXER)) {
- indexerClass = "NameIndexer";
- indexerType = "name";
- } else {
- indexerClass = "ValueIndexer";
- }
- String[] contents = {
- "<a href=\"?viewer="+this.thisViewer+"&update="
- +indexerName+"\"><b>"+indexerName+"</b></a>",
- "<b>"+thisConf.getAttribute("pattern")+"</b>",
- indexerClass,
- indexerType,
- thisConf.getAttribute("pagesize", ""),
- thisConf.getAttribute("maxkeysize", ""),
- "<a href=\"?viewer="+this.thisViewer+"&delete="
- +indexerName+"\">delete</a>"
- };
- printTableRow(contents, output);
- }
- printEndTable(output);
- }
- } catch (DBException e) {
- e.printStackTrace();
- printStartTable("Error", output);
- printStartSingleTableBox(output);
- output.print("Sorry cannot get Indexes: ");
- output.print(e.getMessage());
- printEndSingleTableBox(output);
- printEndTable(output);
- }
- finishViewer(output);
- }
-
- protected Indexer createIndex(Collection col, String name, String pattern,
- String type, String pagesize, String maxkeysize)
- throws DBException, ReadOnlyException {
-
- Document doc = new DocumentImpl();
- Element idxEle;
- Indexer indexer = col.getIndexer(name);
- if(indexer != null) {
- idxEle = indexer.getConfig().getElement();
- } else {
- idxEle = doc.createElement("index");
- }
-
- idxEle.setAttribute("name", name);
- idxEle.setAttribute("pattern", pattern);
- idxEle.setAttribute("class", XINDICE_VAL_INDEXER);
-
- if(type.length() > 0) {
- if(type.equalsIgnoreCase("name")) {
- idxEle.setAttribute("class", XINDICE_NAME_INDEXER);
- } else {
- idxEle.setAttribute("type", type);
- }
- } else {
- if(idxEle.hasAttribute("type")) {
- idxEle.removeAttribute("type");
- }
- }
-
- if(pagesize.length() > 0) {
- idxEle.setAttribute("pagesize", pagesize);
- } else {
- if(idxEle.hasAttribute("pagesize")) {
- idxEle.removeAttribute("pagesize");
- }
- }
-
- if(maxkeysize.length() > 0) {
- idxEle.setAttribute("maxkeysize", maxkeysize);
- } else {
- if(idxEle.hasAttribute("maxkeysize")) {
- idxEle.removeAttribute("maxkeysize");
- }
- }
-
- doc.appendChild(idxEle);
- return col.createIndexer(new Configuration(doc, false));
- }
-
- protected void printTypeSelector(String type, ServletOutputStream output)
- throws IOException {
- output.println("<select name=\"type\" size\"1\">");
- output.println("<option value=\"\">default</option>");
- for(int i = 0; i < IDX_TYPES.length; i += 2) {
- output.print("<option value=\""+IDX_TYPES[i]+"\"");
- if(type.equalsIgnoreCase(IDX_TYPES[i])) {
- output.print(" selected=\"selected\"");
- }
- output.print(" >"+IDX_TYPES[i]+": "+IDX_TYPES[i+1]+"</option>");
- }
- output.println("</select>");
- }
-
- /** index types as pair: type, description */
- protected static final String[] IDX_TYPES = {
- "string", "Non-normalized string value",
- "trimmed", "Normalized (whitespace stripped) string value",
- "short", "16-bit signed short integer",
- "int", "32-bit signed integer",
- "long", "64-bit signed integer",
- "float", "32-bit floating point value",
- "double", "64-bit floating point value (XPath number)",
- "byte", "8-bit signed byte",
- "char", "16-bit signed character",
- "boolean", "8-bit boolean value",
- "name", "Store document keys that contain the pattern",
- };
-
- protected static final String INDEXES_UPDATE_FORM_1 =
- "<form action=\"\" method=\"get\"> \n" +
- "<input name=\"viewer\" value=\"indexes\" type=\"hidden\" /> \n" +
- "<table class=\"upload-form\"> \n" +
- "<tr><td> \n" +
- " index name: \n" +
- "</td><td> \n" +
- " <input name=\"name\" type=\"text\" value=\"";
-
- protected static final String INDEXES_UPDATE_FORM_2 =
- "\" /> \n" +
- "</td><td> \n" +
- " pattern: \n" +
- "</td><td> \n" +
- " <input name=\"pattern\" type=\"text\" value=\"";
-
- protected static final String INDEXES_UPDATE_FORM_3 =
- "\" /> \n" +
- " </td></tr> \n" +
- " <tr><td colspan=\"4\"> </td></tr> \n" +
- "<tr><td> \n" +
- " type: \n" +
- "</td><td colspan=\"3\"> \n";
-
- protected static final String INDEXES_UPDATE_FORM_4 =
- " </td></tr> \n" +
- "<tr><td> \n" +
- " pagesize: \n" +
- "</td><td> \n" +
- " <input name=\"pagesize\" type=\"text\" value=\"";
-
- protected static final String INDEXES_UPDATE_FORM_5 =
- "\" /> \n" +
- " </td><td> \n" +
- " max key size: \n" +
- "</td><td> \n" +
- " <input name=\"maxkeyesize\" type=\"text\" value=\"";
-
- protected static final String INDEXES_UPDATE_FORM_6 =
- "\" /> \n" +
- " <tr><td colspan=\"4\" align=\"center\"> \n" +
- " <input type=\"submit\" name=\"submit\" value=\"add/update\" /> \n" +
- " </td></tr> \n" +
- " </table> \n" +
- " </form> \n";
+public class CollectionIndexesViewer extends HtmlViewerComponent implements HtmlCollectionViewer {
+ protected static final String XINDICE_VAL_INDEXER = "org.apache.xindice.core.indexer.ValueIndexer";
+ protected static final String XINDICE_NAME_INDEXER = "org.apache.xindice.core.indexer.NameIndexer";
+
+ private static final Log log = LogFactory.getLog(CollectionIndexesViewer.class);
+
+ public void execute(HttpServletRequest req, HttpServletResponse res, Collection col)
+ throws ServletException, IOException {
+
+ String path = col.getCanonicalName();
+ String title = "Collection Indexes for " + path;
+
+ ServletOutputStream output = startViewer(title, path, res);
+
+ String name = req.getParameter("name");
+ String pattern = req.getParameter("pattern");
+ String type = req.getParameter("type");
+ String pagesize = req.getParameter("pagesize");
+ String maxkeysize = req.getParameter("maxkeysize");
+
+ String delete = req.getParameter("delete");
+
+ if (name != null && pattern != null && name.length() > 0 && pattern.length() > 0) {
+ // create index
+ try {
+ createIndex(col, name, pattern, type, pagesize, maxkeysize);
+ } catch (DBException e) {
+ log.error(e);
+ printStartTable("Message", output);
+ printStartSingleTableBox(output);
+ output.println("<b>Cannot create Indexer " + name + ": " + e.getMessage() + "</b>");
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ output.println("<br />\n");
+ }
+ } else if (delete != null && delete.length() > 0) {
+ printStartTable("Message", output);
+ printStartSingleTableBox(output);
+ try {
+ deleteIndex(col, delete, output);
+ } catch (DBException e) {
+ log.error(e);
+ output.println("<b>Cannot delete Indexer " + name + ": " + e.getMessage() + "</b>");
+ }
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ output.println("<br />\n");
+ }
+
+ // form
+ printStartTable("Add Index for " + path, output);
+ printStartSingleTableBox(output);
+ output.print(INDEXES_UPDATE_FORM_1);
+ output.print(INDEXES_UPDATE_FORM_2);
+ output.print(INDEXES_UPDATE_FORM_3);
+ printTypeSelector(output);
+ output.print(INDEXES_UPDATE_FORM_4);
+ output.print(INDEXES_UPDATE_FORM_5);
+ output.print(INDEXES_UPDATE_FORM_6);
+ printEndSingleTableBox(output);
+ printEndTable(output);
+
+ output.print("<br />");
+ output.flush();
+
+ try {
+ listIndexes(col, output);
+ } catch (DBException e) {
+ log.error(e);
+ printStartTable("Error", output);
+ printStartSingleTableBox(output);
+ output.print("Sorry, cannot get Indexes: ");
+ output.print(e.getMessage());
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ }
+ finishViewer(output);
+ }
+
+ private void listIndexes(Collection col, ServletOutputStream output) throws DBException, IOException {
+ String[] indexes = col.listIndexers();
+ if (indexes.length == 0) {
+ String message = "Collection contains no Indexes!";
+ printStartTable(message, output);
+ printStartSingleTableBox(output);
+ output.print(message);
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ } else {
+ String[] columnTitles = {"name", "pattern", "class", "type",
+ "pagesize", "max key size", "delete"};
+ printStartTable(columnTitles, output);
+ for (int i = 0; i < indexes.length; i++) {
+ Configuration thisConf = col.getIndexer(indexes[i]).getConfig();
+ String indexerName = thisConf.getAttribute("name");
+ String indexerType = thisConf.getAttribute("type", "");
+ String indexerClass = thisConf.getAttribute("class");
+ if (indexerClass.equalsIgnoreCase(XINDICE_NAME_INDEXER)) {
+ indexerClass = "NameIndexer";
+ indexerType = "name";
+ } else {
+ indexerClass = "ValueIndexer";
+ }
+ String[] contents = {
+ "<b>" + indexerName + "</b>",
+ "<b>" + thisConf.getAttribute("pattern") + "</b>",
+ indexerClass,
+ indexerType,
+ thisConf.getAttribute("pagesize", ""),
+ thisConf.getAttribute("maxkeysize", ""),
+ "<a href=\"?viewer=" + getName() + "&delete="
+ + indexerName + "\">delete</a>"
+ };
+ printTableRow(contents, output);
+ }
+ printEndTable(output);
+ }
+ }
+
+ private void deleteIndex(Collection col, String name, ServletOutputStream output) throws IOException, DBException {
+ // delete indexer
+ Indexer delIndex = col.getIndexer(name);
+ if (delIndex != null) {
+ if (col.dropIndexer(delIndex)) {
+ output.println("<b>Indexer " + name + " deleted!</b>");
+ } else {
+ output.println("<b>Cannot delete Indexer " + name + "!</b>");
+ }
+ } else {
+ output.println("<b>Cannot get Indexer " + name + "!</b>");
+ }
+ }
+
+ private Indexer createIndex(Collection col, String name, String pattern, String type, String pagesize, String maxkeysize)
+ throws DBException {
+
+ Document doc = new DocumentImpl();
+
+ Element idxEle = doc.createElement("index");
+ idxEle.setAttribute("name", name);
+ idxEle.setAttribute("pattern", pattern);
+ idxEle.setAttribute("class", XINDICE_VAL_INDEXER);
+
+ if (type != null && type.length() > 0) {
+ if (type.equalsIgnoreCase("name")) {
+ idxEle.setAttribute("class", XINDICE_NAME_INDEXER);
+ } else {
+ idxEle.setAttribute("type", type);
+ }
+ }
+
+ if (pagesize != null && pagesize.length() > 0) {
+ idxEle.setAttribute("pagesize", pagesize);
+ }
+
+ if (maxkeysize != null && maxkeysize.length() > 0) {
+ idxEle.setAttribute("maxkeysize", maxkeysize);
+ }
+
+ doc.appendChild(idxEle);
+ return col.createIndexer(new Configuration(doc, false));
+ }
+
+ private void printTypeSelector(ServletOutputStream output) throws IOException {
+ output.println("<select name=\"type\" size\"1\">");
+ output.println("<option value=\"\">default</option>");
+ for (int i = 0; i < IDX_TYPES.length; i += 2) {
+ output.print("<option value=\"" + IDX_TYPES[i] + "\"");
+ output.print(" >" + IDX_TYPES[i] + ": " + IDX_TYPES[i + 1] + "</option>");
+ }
+ output.println("</select>");
+ }
+
+ /**
+ * index types as pair: type, description
+ */
+ private static final String[] IDX_TYPES = {
+ "string", "Non-normalized string value",
+ "trimmed", "Normalized (whitespace stripped) string value",
+ "short", "16-bit signed short integer",
+ "int", "32-bit signed integer",
+ "long", "64-bit signed integer",
+ "float", "32-bit floating point value",
+ "double", "64-bit floating point value (XPath number)",
+ "byte", "8-bit signed byte",
+ "char", "16-bit signed character",
+ "boolean", "8-bit boolean value",
+ "name", "Store document keys that contain the pattern",
+ };
+
+ private static final String INDEXES_UPDATE_FORM_1 =
+ "<form action=\"\" method=\"get\"> \n" +
+ "<input name=\"viewer\" value=\"indexes\" type=\"hidden\" /> \n" +
+ "<table class=\"upload-form\"> \n" +
+ "<tr><td> \n" +
+ " index name: \n" +
+ "</td><td> \n" +
+ " <input name=\"name\" type=\"text\" value=\"";
+
+ private static final String INDEXES_UPDATE_FORM_2 =
+ "\" /> \n" +
+ "</td><td> \n" +
+ " pattern: \n" +
+ "</td><td> \n" +
+ " <input name=\"pattern\" type=\"text\" value=\"";
+
+ private static final String INDEXES_UPDATE_FORM_3 =
+ "\" /> \n" +
+ " </td></tr> \n" +
+ " <tr><td colspan=\"4\"> </td></tr> \n" +
+ "<tr><td> \n" +
+ " type: \n" +
+ "</td><td colspan=\"3\"> \n";
+
+ private static final String INDEXES_UPDATE_FORM_4 =
+ " </td></tr> \n" +
+ "<tr><td> \n" +
+ " pagesize: \n" +
+ "</td><td> \n" +
+ " <input name=\"pagesize\" type=\"text\" value=\"";
+
+ private static final String INDEXES_UPDATE_FORM_5 =
+ "\" /> \n" +
+ " </td><td> \n" +
+ " max key size: \n" +
+ "</td><td> \n" +
+ " <input name=\"maxkeyesize\" type=\"text\" value=\"";
+
+ private static final String INDEXES_UPDATE_FORM_6 =
+ "\" /> \n" +
+ " <tr><td colspan=\"4\" align=\"center\"> \n" +
+ " <input type=\"submit\" name=\"submit\" value=\"add\" /> \n" +
+ " </td></tr> \n" +
+ " </table> \n" +
+ " </form> \n";
+
+ protected String getName() {
+ return "indexes";
+ }
}
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 24 18:43:39 2007
@@ -1 +1 @@
-Author Date Id Revision
+Id Revision Author Date
Added: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java?view=auto&rev=541504
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java (added)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java Thu May 24 18:43:39 2007
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * $Id$
+ */
+
+package org.apache.xindice.webadmin.viewer.components;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.w3c.dom.Document;
+
+import org.apache.xindice.core.Collection;
+import org.apache.xindice.core.DBException;
+import org.apache.xindice.core.data.Entry;
+import org.apache.xindice.webadmin.viewer.*;
+import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
+import org.apache.xindice.xml.Xml2HtmlWriter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Xindice Html Contents Viewer for Resources
+ *
+ * @author <a href="mailto:[email protected] ">Jan Metzner</a>
+ * @version $Id$
+ */
+public class ContentResourceViewer extends HtmlViewerComponent implements HtmlResourceViewer {
+
+ private static final Log log = LogFactory.getLog(ContentResourceViewer.class);
+
+ public void execute(HttpServletRequest req, HttpServletResponse res, Collection col, String name)
+ throws ServletException, IOException {
+
+ String path = col.getCanonicalName() + "/" + name;
+ String title = "Document " + path;
+
+ Entry resource;
+ try {
+ resource = col.getEntry(name);
+ } catch (DBException e) {
+ log.error(e);
+ throw new ServletException(e);
+ }
+
+ ServletOutputStream output = startViewer(title, path, res);
+ printStartTable(title, output);
+ printStartSingleTableBox(output);
+ output.print("<a href=\"./?viewer=default\">up to parent collection</a>");
+ printEndSingleTableBox(output);
+ printStartSingleTableBox(output);
+ if (resource.getEntryType() == Entry.DOCUMENT) {
+ Xml2HtmlWriter.write((Document) resource.getValue(), output);
+ } else {
+ output.print("binary resource <a href=\"./");
+ output.print(name);
+ output.print("\">view content</a>");
+ }
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ finishViewer(output);
+ }
+
+ protected String getName() {
+ return "content";
+ }
+}
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java
------------------------------------------------------------------------------
svn:keywords = Id Revision Author Date
Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java?view=diff&rev=541504&r1=541498&r2=541504
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java Thu May 24 18:43:39 2007
@@ -26,33 +26,25 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.avalon.framework.service.ServiceSelector;
import org.apache.xindice.core.Collection;
import org.apache.xindice.util.Configuration;
import org.apache.xindice.webadmin.util.CollectionConfigurationHelper;
import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Xindice Html Viewer for creating a new collection.
- *
- * @avalon.component
- * @avalon.service type=HtmlCollectionViewer
- * @x-avalon.info name=create
- * @x-avalon.lifestyle type=singleton
*
* @author <a href="mailto:[email protected] ">Jan Metzner</a>
* @version $Id$
*/
-public class CreateCollectionViewer
- extends HtmlViewerComponent
- implements HtmlCollectionViewer {
-
- public void execute(
- HttpServletRequest req,
- HttpServletResponse res,
- Collection col)
- throws ServletException, IOException {
+public class CreateCollectionViewer extends HtmlViewerComponent implements HtmlCollectionViewer {
+ private static final Log log = LogFactory.getLog(CreateCollectionViewer.class);
+
+ public void execute(HttpServletRequest req, HttpServletResponse res, Collection col)
+ throws ServletException, IOException {
String path = col.getCanonicalName();
String title = "Create Subcollection in " + path;
@@ -65,64 +57,24 @@
String filer = req.getParameter("filer");
if (name == null || name.length() == 0) {
-
- try {
- CollectionConfigurationHelper helper;
- Object object =
- m_serviceManager.lookup(CollectionConfigurationHelper.ROLE);
- if (object instanceof ServiceSelector) {
- helper =
- (CollectionConfigurationHelper)
- ((ServiceSelector)object).select(
- "col-config");
- } else {
- helper = (CollectionConfigurationHelper)object;
- }
-
- printStartTable(title, output);
- printStartSingleTableBox(output);
- output.print(CREATE_FORM_START);
- output.print(helper.getDefaultInlineMetadata());
- output.print(CREATE_FORM_META_DEFAULT);
- output.print(!helper.getDefaultInlineMetadata());
- output.print(CREATE_FORM_META_END);
- output.print(helper.getDefaultCompressed());
- output.print(CREATE_FORM_COMPRESSED_DEFAULT);
- output.print(!helper.getDefaultCompressed());
- output.print(CREATE_FORM_COMPRESSED_END);
- output.print(helper.getDefaultFilerClass());
- output.print(CREATE_FORM_FILER);
- printEndSingleTableBox(output);
- printEndTable(output);
- } catch (Exception e) {
- if (getLogger().isWarnEnabled()) {
- getLogger().error(
- "Could not get CollectionConfigurationHelper!");
- }
- e.printStackTrace();
- throw new ServletException(e);
- }
+ printStartTable(title, output);
+ printStartSingleTableBox(output);
+ output.print(CREATE_FORM_START);
+ output.print(CollectionConfigurationHelper.getDefaultInlineMetadata());
+ output.print(CREATE_FORM_META_DEFAULT);
+ output.print(!CollectionConfigurationHelper.getDefaultInlineMetadata());
+ output.print(CREATE_FORM_META_END);
+ output.print(CollectionConfigurationHelper.getDefaultCompressed());
+ output.print(CREATE_FORM_COMPRESSED_DEFAULT);
+ output.print(!CollectionConfigurationHelper.getDefaultCompressed());
+ output.print(CREATE_FORM_COMPRESSED_END);
+ output.print(CollectionConfigurationHelper.getDefaultFilerClass());
+ output.print(CREATE_FORM_FILER);
+ printEndSingleTableBox(output);
+ printEndTable(output);
} else {
try {
- CollectionConfigurationHelper helper;
- Object object =
- m_serviceManager.lookup(CollectionConfigurationHelper.ROLE);
- if (object instanceof ServiceSelector) {
- helper =
- (CollectionConfigurationHelper)
- ((ServiceSelector)object).select(
- "col-config");
- } else {
- helper = (CollectionConfigurationHelper)object;
- }
-
- Configuration config =
- helper.createConfiguration(
- name,
- compressed,
- inlineMeta,
- filer);
-
+ Configuration config = CollectionConfigurationHelper.createConfiguration(name, compressed, inlineMeta, filer);
col.createCollection(name, config);
printStartTable(title, output);
@@ -135,8 +87,7 @@
printEndSingleTableBox(output);
printEndTable(output);
} catch (Exception e) {
- e.printStackTrace();
-
+ log.error(e);
title = "Error while creating new Collection!";
printStartTable(title, output);
printStartSingleTableBox(output);
@@ -150,6 +101,10 @@
}
finishViewer(output);
+ }
+
+ protected String getName() {
+ return "create";
}
}
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 24 18:43:39 2007
@@ -1 +1 @@
-Author Date Id Revision
+Id Revision Author Date
Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java?view=diff&rev=541504&r1=541498&r2=541504
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java Thu May 24 18:43:39 2007
@@ -30,91 +30,102 @@
import org.apache.xindice.core.Collection;
import org.apache.xindice.webadmin.viewer.*;
import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
/**
* Xindice Html Viewer for deleting a collection.
- *
- * @avalon.component
- * @avalon.service type=HtmlCollectionViewer
- * @x-avalon.info name=delete
- * @x-avalon.lifestyle type=singleton
*
* @author <a href="mailto:[email protected] ">Jan Metzner</a>
* @version $Id$
*/
-public class DeleteCollectionViewer
- extends HtmlViewerComponent
- implements HtmlCollectionViewer {
-
- public void execute(
- HttpServletRequest req,
- HttpServletResponse res,
- Collection col)
- throws ServletException, IOException {
-
- String colName = col.getName();
- String path = col.getCanonicalName();
-
- String title = "Delete Collection "+colName;
-
- String action = req.getParameter("action");
- String redirect = req.getParameter("redirect");
- if(redirect == null) {
- redirect = "";
- }
- if(action == null || !action.equals("yes")) {
- ServletOutputStream output = startViewer(title, path, res);
- printStartTable(title, output);
- printStartSingleTableBox(output);
- output.print("Do you really want to delete the collection ");
- output.print(colName);
- output.print("? <a href=\"javascript:history.back()\">no</a> ");
- output.print(" <a href=\"?viewer=delete&action=yes&redirect=");
- output.print(redirect);
- output.print("\">yes</a>");
- printEndSingleTableBox(output);
- printEndTable(output);
- finishViewer(output);
- } else {
- try {
- // delete collection
- col.getParentCollection().dropCollection(col);
-
- // display output or redirect
- if(redirect.length() > 0) {
- res.sendRedirect(redirect);
- } else {
- ServletOutputStream output = startViewer(title, path, res);
- printStartTable(title, output);
- printStartSingleTableBox(output);
- output.print( "<a href=\"../?viewer=default\">up to parent collection</a>");
- printEndSingleTableBox(output);
- printStartSingleTableBox(output);
- output.print("<b>Collection ");
- output.print(colName);
- output.print(" deleted!</b>" );
- printEndSingleTableBox(output);
- printEndTable(output);
- finishViewer(output);
- }
- } catch (DBException e) {
- e.printStackTrace();
- ServletOutputStream output = startViewer(title, path, res);
- printStartTable(title, output);
- printStartSingleTableBox(output);
- output.print( "<a href=\"../../?viewer=default\">up to parent collection</a>");
- printEndSingleTableBox(output);
- printStartSingleTableBox(output);
- output.print("Cannot delete Collection");
- output.print(colName);
- output.print("! <br />");
- output.print(e.getMessage());
- printEndSingleTableBox(output);
- printEndTable(output);
- finishViewer(output);
- }
- }
+public class DeleteCollectionViewer extends HtmlViewerComponent implements HtmlCollectionViewer {
+ private static final Log log = LogFactory.getLog(DeleteCollectionViewer.class);
- }
+ public void execute(HttpServletRequest req, HttpServletResponse res, Collection col) throws ServletException, IOException {
+
+ String colName = col.getName();
+ String path = col.getCanonicalName();
+
+ String title = "Delete Collection " + colName;
+
+ String action = req.getParameter("action");
+ String redirect = req.getParameter("redirect");
+ if (redirect == null) {
+ redirect = "";
+ }
+ if (!"yes".equals(action)) {
+ ServletOutputStream output = startViewer(title, path, res);
+ printStartTable(title, output);
+ printStartSingleTableBox(output);
+ output.print("Do you really want to delete the collection ");
+ output.print(colName);
+ output.print("? <a href=\"javascript:history.back()\">no</a> ");
+ output.print(" <a href=\"?viewer=delete&action=yes&redirect=");
+ output.print(redirect);
+ output.print("\">yes</a>");
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ finishViewer(output);
+ } else {
+ try {
+ // check if it is a database
+ if (col.getParentCollection() == null) {
+ ServletOutputStream output = startViewer(title, path, res);
+ title = "Error while deleting Collection!";
+ printStartTable(title, output);
+ printStartSingleTableBox(output);
+ output.print("<b>Database cannot be deleted. Please manually change configuration files to delete or add a database.");
+ output.print("</b><br />");
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ finishViewer(output);
+ return;
+ }
+
+ // delete collection
+ col.getParentCollection().dropCollection(col);
+
+ // display output or redirect
+ if (redirect.length() > 0) {
+ res.sendRedirect(redirect);
+ } else {
+ ServletOutputStream output = startViewer(title, path, res);
+ printStartTable(title, output);
+ printStartSingleTableBox(output);
+ output.print("<a href=\"../?viewer=default\">up to parent collection</a>");
+ printEndSingleTableBox(output);
+ printStartSingleTableBox(output);
+ output.print("<b>Collection ");
+ output.print(colName);
+ output.print(" deleted!</b>");
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ finishViewer(output);
+ }
+ } catch (DBException e) {
+ log.error(e);
+
+ ServletOutputStream output = startViewer(title, path, res);
+ printStartTable(title, output);
+ printStartSingleTableBox(output);
+ output.print("<a href=\"../../?viewer=default\">up to parent collection</a>");
+ printEndSingleTableBox(output);
+ printStartSingleTableBox(output);
+ output.print("Cannot delete Collection");
+ output.print(colName);
+ output.print("! <br />");
+ output.print(e.getMessage());
+ printEndSingleTableBox(output);
+ printEndTable(output);
+ finishViewer(output);
+ }
+ }
+
+ }
+
+ protected String getName() {
+ return "delete";
+ }
}
Propchange: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Thu May 24 18:43:39 2007
@@ -1 +1 @@
-Author Date Id Revision
+Id Revision Author Date