perfsonar-dev - [GEANT/SA2/ps-java-services] r5666 - in trunk/perfsonar-java-web-admin: . perfsonar-java-web-admin-component perfsonar-java-web-admin-component/.settings perfsonar-java-web-admin-component/src perfsonar-java-web-admin-component/src/jaxme perfsonar-java-web-admin-component/src/main perfsonar-java-web-admin-component/src/main/java perfsonar-java-web-admin-component/src/main/java/org perfsonar-java-web-admin-component/src/main/java/org/perfsonar perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2 perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util perfsonar-java-web-admin-component/ src/main/java/org/perfsonar/webadmin/base2/test perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util perfsonar-java-web-admin-component/src/main/resources perfsonar-java-web-admin-component/src/main/resources/wa perfsonar-java-web-admin-component/src/main/resources/wa/graphics perfsonar-java-web-admin-component/src/main/resources/wa/scripts perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages perfsonar-java-web-admin-component/src/main/resources/wa/styles perfsonar-java-web-admin-component/src/main/webapp perfsonar-java-web-admin-component/src/main/webapp/WEB-INF perfsonar-java-web-admin-component/src/main/webapp/views perfsonar-java-web-admin-component/src/test perfsonar-java-web-admin-component/src/test/java perfsonar-java-web-admin-component/src/test/java/org perfsonar-java-web-admin-component/src/test/java/org/perfsonar perfsonar-java-web-admin-component/src/test/resources perfsonar-java-web-admin-exampleservice perfsonar-ja va-web-admin-exampleservice/src perfsonar-java-web-admin-exa! mpleservice/src/main perfsonar-java-web-admin-exampleservice/src/main/webapp perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes perfsonar-java-web-admin-exampleservice/src/main/we
Subject: perfsonar development work
List archive
[GEANT/SA2/ps-java-services] r5666 - in trunk/perfsonar-java-web-admin: . perfsonar-java-web-admin-component perfsonar-java-web-admin-component/.settings perfsonar-java-web-admin-component/src perfsonar-java-web-admin-component/src/jaxme perfsonar-java-web-admin-component/src/main perfsonar-java-web-admin-component/src/main/java perfsonar-java-web-admin-component/src/main/java/org perfsonar-java-web-admin-component/src/main/java/org/perfsonar perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2 perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util perfsonar-java-web-admin-component/ src/main/java/org/perfsonar/webadmin/base2/test perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util perfsonar-java-web-admin-component/src/main/resources perfsonar-java-web-admin-component/src/main/resources/wa perfsonar-java-web-admin-component/src/main/resources/wa/graphics perfsonar-java-web-admin-component/src/main/resources/wa/scripts perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages perfsonar-java-web-admin-component/src/main/resources/wa/styles perfsonar-java-web-admin-component/src/main/webapp perfsonar-java-web-admin-component/src/main/webapp/WEB-INF perfsonar-java-web-admin-component/src/main/webapp/views perfsonar-java-web-admin-component/src/test perfsonar-java-web-admin-component/src/test/java perfsonar-java-web-admin-component/src/test/java/org perfsonar-java-web-admin-component/src/test/java/org/perfsonar perfsonar-java-web-admin-component/src/test/resources perfsonar-java-web-admin-exampleservice perfsonar-ja va-web-admin-exampleservice/src perfsonar-java-web-admin-exa! mpleservice/src/main perfsonar-java-web-admin-exampleservice/src/main/webapp perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes perfsonar-java-web-admin-exampleservice/src/main/we
Chronological Thread
- From:
- To:
- Subject: [GEANT/SA2/ps-java-services] r5666 - in trunk/perfsonar-java-web-admin: . perfsonar-java-web-admin-component perfsonar-java-web-admin-component/.settings perfsonar-java-web-admin-component/src perfsonar-java-web-admin-component/src/jaxme perfsonar-java-web-admin-component/src/main perfsonar-java-web-admin-component/src/main/java perfsonar-java-web-admin-component/src/main/java/org perfsonar-java-web-admin-component/src/main/java/org/perfsonar perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2 perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util perfsonar-java-web-admin-component/ src/main/java/org/perfsonar/webadmin/base2/test perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util perfsonar-java-web-admin-component/src/main/resources perfsonar-java-web-admin-component/src/main/resources/wa perfsonar-java-web-admin-component/src/main/resources/wa/graphics perfsonar-java-web-admin-component/src/main/resources/wa/scripts perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages perfsonar-java-web-admin-component/src/main/resources/wa/styles perfsonar-java-web-admin-component/src/main/webapp perfsonar-java-web-admin-component/src/main/webapp/WEB-INF perfsonar-java-web-admin-component/src/main/webapp/views perfsonar-java-web-admin-component/src/test perfsonar-java-web-admin-component/src/test/java perfsonar-java-web-admin-component/src/test/java/org perfsonar-java-web-admin-component/src/test/java/org/perfsonar perfsonar-java-web-admin-component/src/test/resources perfsonar-java-web-admin-exampleservice perfsonar-ja va-web-admin-exampleservice/src perfsonar-java-web-admin-exa! mpleservice/src/main perfsonar-java-web-admin-exampleservice/src/main/webapp perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes perfsonar-java-web-admin-exampleservice/src/main/we
- Date: Thu, 20 May 2010 09:56:48 +0100
Author: psnc.procyk
Date: 2010-05-20 09:56:47 +0100 (Thu, 20 May 2010)
New Revision: 5666
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.classpath
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.project
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.settings/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.settings/org.eclipse.jdt.core.prefs
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/pom.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/jaxme/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/jaxme/wa.xsd
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/HTMLGenerator.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/ObjectMap.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest/SelfTestMessageParser.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/BasicConfigurationServlet.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/SelfTestServlet.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/Base64.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/ConfigurationServletHelper.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClient.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClientException.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtil.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtilStringBuffer.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/NSContext.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/StringOutputStream.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/Tuple.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLReader.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLWriter.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/XMLUtil.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/admin_home_target.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/apply_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/apply_button_2.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/arrow_icon.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/arrow_icon2.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_1_large.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_1_small.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_2_large.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_2_small.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/cancel_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/create_resource_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/delete_red_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/edit_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/edit_green_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/login_panel.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/logos.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/logout_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_collections_off_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_collections_on_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_users_off_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_users_on_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/perfsonar_logo.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_bottom.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_slice.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_top.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_bottom.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_slice.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_top.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_fail.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_main.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_return.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_startbn.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_succ.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/top_slice.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/Service_Admin.js
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/wz_tooltip.js
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages/selfTest.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/default.css
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/main.css
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/WEB-INF/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/WEB-INF/web.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/index.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/banner.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/configurationSaved.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/error.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/footer.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/savedFailed.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/selfTest.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/sideBar.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/welcome.jsp
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/org/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/org/perfsonar/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/org/perfsonar/SelftTestResponseTest.java
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse1.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse2.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/pom.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/configuration.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/webAdminConfig.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/web.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/admin_home_target.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/apply_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/apply_button_2.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/arrow_icon.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/arrow_icon2.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_1_large.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_1_small.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_2_large.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_2_small.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/cancel_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/create_resource_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/delete_red_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/edit_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/edit_green_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/login_panel.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/logos.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/logout_button.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_collections_off_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_collections_on_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_users_off_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_users_on_tab.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/perfsonar_logo.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_bottom.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_slice.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_top.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_bottom.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_slice.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_top.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_fail.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_main.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_return.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_startbn.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_succ.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/top_slice.gif
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/Service_Admin.js
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/wz_tooltip.js
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/soapMessages/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/soapMessages/selfTest.xml
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/default.css
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/main.css
trunk/perfsonar-java-web-admin/pom.xml
Log:
WA mavenized and splited into two parts
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.classpath
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.classpath
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.classpath
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,37 @@
+<classpath>
+ <classpathentry kind="src" path="src/test/java"
output="target/test-classes" including="**/*.java"/>
+ <classpathentry kind="src" path="src/test/resources"
output="target/test-classes" excluding="**/*.java"/>
+ <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
+ <classpathentry kind="src" path="target/jaxme/java" including="**/*.java"/>
+ <classpathentry kind="src" path="src/main/resources"
excluding="**/*.java"/>
+ <classpathentry kind="src" path="target/jaxme/resources"
excluding="**/*.java"/>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="var"
path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6/dom4j-1.6.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/httpcomponents/httpclient/4.0/httpclient-4.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/com/ibm/icu/icu4j/2.6.1/icu4j-2.6.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/Validation/isorelax/1.0/isorelax-1.0.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jaxen/jaxen/1.1/jaxen-1.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/ws/jaxme/jaxme2/0.5.2/jaxme2-0.5.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/ws/jaxme/jaxmeapi/0.5.2/jaxmeapi-0.5.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/ws/jaxme/jaxmejs/0.5.2/jaxmejs-0.5.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/org/apache/ws/jaxme/jaxmexs/0.5.2/jaxmexs-0.5.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/jdom/jdom/1.0/jdom-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/log4j/log4j/1.2.9/log4j-1.2.9.jar"/>
+ <classpathentry kind="var" path="M2_REPO/Validation/msv/1.0/msv-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/Validation/relaxngDatatype/1.0/relaxngDatatype-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xalan/serializer/2.7.1/serializer-2.7.1.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/tomcat/servlet-api/5.0.28/servlet-api-5.0.28.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xalan/xalan/2.6.0/xalan-2.6.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xmldb/xmldb-common/20030701/xmldb-common-20030701.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xmldb/xmldb-xupdate/20040205/xmldb-xupdate-20040205.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar"/>
+ <classpathentry kind="var" path="M2_REPO/xom/xom/1.0/xom-1.0.jar"/>
+ <classpathentry kind="var"
path="M2_REPO/Validation/xsdlib/1.0/xsdlib-1.0.jar"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+</classpath>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.project
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.project
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.project
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,13 @@
+<projectDescription>
+ <name>perfsonar-web-admin-component</name>
+ <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the
maven-eclipse-plugin are not supported in M2Eclipse.</comment>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.settings/org.eclipse.jdt.core.prefs
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.settings/org.eclipse.jdt.core.prefs
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/.settings/org.eclipse.jdt.core.prefs
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,9 @@
+#Fri May 14 12:55:38 CEST 2010
+encoding//src/test/java=UTF-8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+eclipse.preferences.version=1
+encoding//src/test/resources=UTF-8
+org.eclipse.jdt.core.compiler.source=1.6
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+org.eclipse.jdt.core.compiler.compliance=1.6
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/pom.xml
===================================================================
--- trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/pom.xml
(rev 0)
+++ trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/pom.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,261 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>perfsonar</groupId>
+ <artifactId>perfsonar-web-admin-component</artifactId>
+ <packaging>war</packaging>
+ <version>1.6</version>
+ <name>perfSONAR Web Admin</name>
+ <url>http://www.perfsonar.net/</url>
+ <description>
+ </description>
+
+ <developers>
+ <developer>
+ <id>wiku</id>
+ <name>Wiktor Procyk</name>
+
<email></email>
+ <url></url>
+ <organization>Poznan Supercomputing and Networking
Center</organization>
+
<organizationUrl>http://www.man.poznan.pl/</organizationUrl>
+ <roles>
+ <role>designer</role>
+ <role>developer</role>
+ </roles>
+ <timezone>1</timezone>
+ <properties>
+ <skype>wiktorpr</skype>
+ </properties>
+ </developer>
+ </developers>
+
+ <inceptionYear>2009</inceptionYear>
+
+ <issueManagement>
+ <system>JIRA</system>
+ <url>http://issues.geant.net/</url>
+ </issueManagement>
+
+ <scm>
+
<connection>scm:svn:http://svn.geant.net/GEANT/SA2/ps-java-services/trunk/geant2_java-sshtelnet-mp</connection>
+
<developerConnection>scm:svn:svn+ssh:///GEANT/SA2/ps-java-services/trunk/geant2_java-sshtelnet-mp</developerConnection>
+ <!-- <tag></tag> -->
+ <url></url>
+ </scm>
+
+ <organization>
+ <name>Poznan Supercomputing and Networking Center</name>
+ <url>http://www.man.poznan.pl/</url>
+ </organization>
+
+ <!--
+ <prerequisites> <maven>2.0</maven> </prerequisites>
+ <ciManagement></ciManagement> <mailingLists>
+ <mailingList></mailingList> </mailingLists>
+ <contributors></contributors> <licenses> <license></license>
+ </licenses>
+ -->
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>maven-jaxme-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>jaxme</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jspc-maven-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ <executions>
+ <execution>
+ <id>jspc</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+
<artifactId>maven-resources-plugin</artifactId>
+ <version>2.4.2</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <!--
+ <includes>
<include>**/service/*</include> </includes>
+ -->
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <!--
+ <webResources> <resource>
+
<directory>${project.build.directory}</directory> <excludes>
+ <exclude>**/*.jsp</exclude>
</excludes>
+
<targetPath>WEB-INF</targetPath> </resource> </webResources>
+ -->
+ <webXml>target/jspweb.xml</webXml>
+
<warSourceExcludes>**/*.jsp</warSourceExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ </build>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>5.0.28</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>isorelax</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>jaxme2</artifactId>
+ <version>0.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>jaxmeapi</artifactId>
+ <version>0.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>jaxmexs</artifactId>
+ <version>0.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>msv</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>relaxngDatatype</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>serializer</artifactId>
+ <version>2.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>xmldb</groupId>
+ <artifactId>xmldb-common</artifactId>
+ <version>20030701</version>
+ </dependency>
+ <dependency>
+ <groupId>xmldb</groupId>
+ <artifactId>xmldb-xupdate</artifactId>
+ <version>20040205</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>xsdlib</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.9</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1</version>
+ </dependency>
+
+ <!--
+ <dependency> <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
<version>2.0</version>
+ </dependency> <dependency>
<groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
<version>2.0.3</version>
+ </dependency>
+ -->
+ </dependencies>
+
+ <repositories>
+ <repository>
+ <id>ibiblio</id>
+ <name>ibiblio repository</name>
+ <url>http://www.ibiblio.org/maven2</url>
+ </repository>
+ <repository>
+ <id>personar</id>
+ <name>personar repository</name>
+
<url>http://anonsvn.internet2.edu/svn/perfsonar/trunk/jar-repository/</url>
+ </repository>
+ </repositories>
+</project>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/jaxme/wa.xsd
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/jaxme/wa.xsd
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/jaxme/wa.xsd
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+
targetNamespace="http://webadmin.perfsonar.org/base2/waschema/v20090201"
+ xmlns="http://webadmin.perfsonar.org/base2/waschema/v20090201"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:wa="http://webadmin.perfsonar.org/base2/waschema/v20090201"
+ elementFormDefault="qualified"
+ attributeFormDefault="qualified">
+
+ <xs:element name="interface" type="wa:WebAdminInterface"/>
+
+ <xs:complexType name="BaseType">
+ <xs:choice>
+ <xs:element name="xpath" type="xs:string"
+ minOccurs="1" maxOccurs="1"/>
+
+ <xs:element name="text" type="xs:string"
+
minOccurs="1" maxOccurs="1"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="BaseUIType">
+ <xs:sequence>
+ <xs:element name="default" type="wa:BaseType"
+ minOccurs="0"
maxOccurs="1"/>
+ <xs:element name="title" type="wa:BaseType"
+ minOccurs="0"
maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ComplexUIType">
+ <xs:complexContent>
+ <xs:extension base="wa:BaseUIType">
+ <xs:sequence>
+ <xs:element name="values"
type="wa:BaseType"
+ minOccurs="0"
maxOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="ComplexGroupUIType">
+ <xs:complexContent>
+ <xs:extension base="wa:BaseUIType">
+ <xs:sequence>
+ <xs:element name="values"
type="wa:BaseType"
+ minOccurs="0"
maxOccurs="1"/>
+ <xs:element name="plain"
type="wa:PlainType"
+
minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Plain elements -->
+ <xs:complexType name ="PlainType">
+ <xs:choice>
+ <xs:element name="password"
type="wa:BaseUIType"
+
minOccurs="1" maxOccurs="1"/>
+ <xs:element name="textbox"
type="wa:BaseUIType"
+
minOccurs="1" maxOccurs="1"/>
+ <xs:element name="radio"
type="wa:ComplexUIType"
+
minOccurs="1" maxOccurs="1"/>
+ <xs:element name="radiogroup"
type="wa:ComplexGroupUIType"
+
minOccurs="1" maxOccurs="1"/>
+ <xs:element name="dropdown"
type="wa:ComplexUIType"
+
minOccurs="1" maxOccurs="1"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- Groups -->
+ <xs:complexType name="GroupType">
+ <xs:sequence>
+ <xs:element name="plain" type="wa:PlainType"
+ minOccurs="1" maxOccurs="unbounded"/>
+ <xs:element name="title" type="xs:string"
+ minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GroupsType">
+ <xs:sequence>
+ <xs:element name="group"
type="wa:GroupType"
+
minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Pages -->
+ <xs:complexType name="PageType">
+ <xs:sequence>
+ <xs:element name="pageId" type="wa:BaseType"
minOccurs="1" maxOccurs="1"/>
+ <xs:element name="title" type="wa:BaseType"
minOccurs="0" maxOccurs="1"/>
+ <xs:choice>
+ <xs:element name="groups"
type="wa:GroupsType" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="plain"
type="wa:PlainType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="NsMap">
+ <xs:sequence>
+ <xs:element name="url" type="xs:string"
+ minOccurs="1" maxOccurs="1"/>
+ <xs:element name="ns" type="xs:string"
+ minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="LinkType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="pageId"
type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="redirectTo"
type="xs:string" minOccurs="1" maxOccurs="1"/>
+ </xs:choice>
+ <xs:element name="title" type="xs:string"
minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Credential">
+ <xs:sequence>
+ <xs:element name="username" type="xs:string"
minOccurs="1" maxOccurs="1"/>
+ <xs:element name="password" type="xs:string"
minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ServiceInformation">
+ <xs:sequence>
+ <xs:element name="accessPoint"
type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="serviceName"
type="xs:string" minOccurs="1" maxOccurs="1"/>
+ <xs:element name="version" type="xs:string"
minOccurs="1" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Root -->
+ <xs:complexType name="WebAdminInterface">
+ <xs:sequence>
+
+ <xs:element name="serviceInformation"
type="wa:ServiceInformation" minOccurs="1" maxOccurs="1"/>
+
+ <xs:element name="credential"
type="wa:Credential" minOccurs="1" maxOccurs="1"/>
+
+ <xs:element name="basiclink"
type="wa:LinkType"
+ minOccurs="1"
maxOccurs="unbounded"/>
+ <xs:element name="advancedlink"
type="wa:LinkType"
+ minOccurs="0" maxOccurs="unbounded"/>
+
+ <xs:element name="map" type="wa:NsMap"
+ minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="page" type="wa:PageType"
+ minOccurs="1"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ </xs:schema>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/HTMLGenerator.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/HTMLGenerator.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/HTMLGenerator.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,422 @@
+package org.perfsonar.webadmin.base2.config;
+
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.perfsonar.webadmin.base2.util.HTMLUtil;
+import org.perfsonar.webadmin.base2.util.NSContext;
+import org.perfsonar.webadmin.base2.util.StringOutputStream;
+import org.perfsonar.webadmin.base2.util.Tuple;
+import org.perfsonar.webadmin.base2.util.XMLUtil;
+import org.perfsonar.webadmin.base2.waschema.v20090201.BaseType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.BaseUIType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.ComplexGroupUIType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.ComplexUIType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.GroupsType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.LinkType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.PageType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.PlainType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.WebAdminInterface;
+import org.w3c.dom.NodeList;
+
+public class HTMLGenerator {
+
+ private final Logger logger = Logger.getLogger(HTMLGenerator.class);
+
+ public enum UIType {
+ DROPDOWN, RADIO, RADIOGROUP, TEXTBOX, PASSOWRD;
+ public static UIType fromString(String s) {
+ s = s.toLowerCase();
+ if (s.equals("dropdown"))
+ return DROPDOWN;
+ else if (s.equals("radio"))
+ return RADIO;
+ else if (s.equals("radiogroup"))
+ return RADIOGROUP;
+ else if (s.equals("textbox"))
+ return TEXTBOX;
+ else if (s.equals("password"))
+ return PASSOWRD;
+ else
+ throw new RuntimeException("Bad string");
+ }
+
+ public String toString() {
+ switch (this) {
+ case DROPDOWN:
+ return "dropdown";
+ case RADIO:
+ return "radio";
+ case RADIOGROUP:
+ return "radiogroup";
+ case TEXTBOX:
+ return "textbox";
+ case PASSOWRD:
+ return "password";
+ }
+ return "";
+ }
+ };
+
+ private PrintStream out = null;
+ private boolean plainContext = true;
+ private ObjectMap objectMap = null;
+ private HTMLUtil html = null;
+
+ private void println(String s) {
+ if (out != null)
+ out.println(s);
+ }
+
+ private String[] getLinksList(List<LinkType> blist, boolean big,
+ boolean advanced) {
+ String basic = "";
+ List<String> result = new ArrayList<String>();
+
+ if (big) {
+ String cls = advanced ? "configheadinglavender" :
"configheading";
+ for (Object o : blist) {
+ LinkType l = (LinkType) o;
+
+ String pageId = l.getPageId();
+ if (pageId != null) {
+ basic = HTMLUtil.tag("tr",
HTMLUtil.tag("td", HTMLUtil.att(
+ "class", cls),
HTMLUtil.tag("p", HTMLUtil.tag("a",
+ HTMLUtil.att("href",
"config?page=" + pageId)
+ +
HTMLUtil.att("target", "_self"), l
+
.getTitle()))
+ + HTMLUtil.tag("p",
" ")
+ + HTMLUtil.tag("p",
" ")))
+ + "\n";
+ } else {
+ basic = HTMLUtil.tag("tr",
HTMLUtil.tag("td", HTMLUtil.att(
+ "class", cls),
HTMLUtil.tag("p", HTMLUtil.tag("a",
+ HTMLUtil.att("href",
l.getRedirectTo())
+ +
HTMLUtil.att("target", "_blank"), l
+
.getTitle()))
+ + HTMLUtil.tag("p",
" ")
+ + HTMLUtil.tag("p",
" ")))
+ + "\n";
+ }
+ result.add(basic);
+ }
+ } else {
+ for (Object o : blist) {
+ LinkType l = (LinkType) o;
+
+ String pageId = l.getPageId();
+
+ if (pageId != null) {
+ basic = HTMLUtil.tag("a",
HTMLUtil.att("href",
+ "config?page=" +
pageId)
+ +
HTMLUtil.att("target", "_self"), l.getTitle())
+ + "<br/>";
+ } else {
+ basic = HTMLUtil.tag("a",
HTMLUtil.att("href", l
+ .getRedirectTo())
+ +
HTMLUtil.att("target", "_blank"), l.getTitle())
+ + "<br/>";
+ }
+
+ if (!basic.equals("")) {
+ result.add("<p><span
class=\"navtex\">" + basic
+ + "</span> </p>");
+ }
+ }
+ }
+
+ return result.toArray(new String[result.size()]);
+ }
+
+ @SuppressWarnings("unchecked")
+ public String[] getBasicLinks(ObjectMap o, boolean big) {
+ WebAdminInterface wai;
+ if (o == null)
+ throw new RuntimeException("Null object map");
+ else if ((wai = o.getWA()) == null)
+ throw new RuntimeException("Null web admin
interface");
+ return getLinksList(wai.getBasiclink(), big, false);
+ }
+
+ public String getServiceName(ObjectMap o) {
+ WebAdminInterface wai;
+ if (o == null)
+ throw new RuntimeException("Null object map");
+ else if ((wai = o.getWA()) == null)
+ throw new RuntimeException("Null web admin
interface");
+ return wai.getServiceInformation().getServiceName();
+ }
+
+ public String getVersion(ObjectMap o) {
+ WebAdminInterface wai;
+ if (o == null)
+ throw new RuntimeException("Null object map");
+ else if ((wai = o.getWA()) == null)
+ throw new RuntimeException("Null web admin
interface");
+ return wai.getServiceInformation().getVersion();
+ }
+
+ @SuppressWarnings("unchecked")
+ public String[] getAdvancedLinks(ObjectMap o, boolean big) {
+ WebAdminInterface wai;
+ if (o == null)
+ throw new RuntimeException("Null object map");
+ else if ((wai = o.getWA()) == null)
+ throw new RuntimeException("Null web admin
interface");
+ return getLinksList(wai.getAdvancedlink(), big, true);
+ }
+
+ @SuppressWarnings("unchecked")
+ public boolean translate(String url, ObjectMap o, PrintStream o1) {
+ objectMap = o;
+ WebAdminInterface wai = objectMap.getWA();
+ out = o1;
+ html = new HTMLUtil(out);
+ if (wai == null)
+ return false;
+ List page = wai.getPage();
+ if (page != null)
+ for (int i = 0, sz = page.size(); i < sz; i++) {
+ PageType pt = (PageType) page.get(i);
+ if (raw(getData(pt.getPageId())).equals(url))
{
+ translate(pt);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public void translate(PageType pg) {
+ if (pg == null)
+ return;
+ // String u = pg.getUrl();
+ // if( u != null ) url = u;
+ List plain = pg.getPlain();
+ GroupsType groups = pg.getGroups();
+ if (groups != null) {
+ boolean oldContext = plainContext;
+ plainContext = false;
+ translate(groups);
+ plainContext = oldContext;
+ } else if (plain != null) {
+ boolean oldContext = plainContext;
+ plainContext = true;
+ for (int i = 0, sz = plain.size(); i < sz; i++)
+ translate((PlainType) plain.get(i));
+ plainContext = oldContext;
+ } else
+ throw new RuntimeException("Unexpected page type.");
+ }
+
+ public void translate(GroupsType g) {
+ }
+
+ public void translate(PlainType p) {
+ if (p == null)
+ return;
+ if (p.getTextbox() != null)
+ translateBaseUI(p.getTextbox(), UIType.TEXTBOX);
+ else if (p.getRadiogroup() != null)
+ translate(p.getRadiogroup(), UIType.RADIOGROUP);
+ else if (p.getRadio() != null)
+ translate(p.getRadio(), UIType.RADIO);
+ else if (p.getDropdown() != null)
+ translate(p.getDropdown(), UIType.DROPDOWN);
+ else if (p.getPassword() != null)
+ translateBaseUI(p.getPassword(), UIType.PASSOWRD);
+ else
+ throw new RuntimeException("Unexpected UI type.");
+ }
+
+ public void translateBaseUI(BaseUIType b, UIType u) {
+ switch (u) {
+ case TEXTBOX:
+ drawTextBox(getRawData(b.getTitle()),
getSingleData(b.getDefault()));
+ break;
+ case PASSOWRD:
+ drawPasswordBox(getRawData(b.getTitle()),
getSingleData(b
+ .getDefault()));
+ break;
+
+ default:
+ throw new RuntimeException("Unexpected BaseUI type.");
+ }
+ }
+
+ public void translate(ComplexGroupUIType cgui, UIType u) {
+ switch (u) {
+ case RADIOGROUP:
+ List plains = cgui.getPlain();
+ if (plains == null)
+ return;
+ PrintStream oldOut = out;
+ StringOutputStream sos = new StringOutputStream();
+ out = new PrintStream(sos);
+ for (int i = 0, sz = plains.size(); i < sz; i++)
+ translate((PlainType) plains.get(i));
+ out = oldOut;
+ drawRadiogroup(getData(cgui.getValues()),
sos.toString());
+ break;
+ default:
+ throw new RuntimeException("Unexpected ComplexGroupUI
type.");
+ }
+ }
+
+ public void translate(ComplexUIType cui, UIType u) {
+ Tuple<Integer, String[]> def = getData(cui.getDefault());
+ Tuple<Integer, String[]> all = getData(cui.getValues());
+ String[] alls = all.second()[0].split(",");
+ Set<String> set = new HashSet<String>(def.second().length
+ + all.second().length);
+
+ for (String s : alls)
+ set.add(s);
+ HashSet<String> singleton = new HashSet<String>(1);
+ singleton.add(def.second()[0]);
+ set.removeAll(singleton);
+
+ String[] rets = new String[set.size() + 1];
+ rets[0] = def.second()[0];
+ int i = rets.length - 1;
+ for (Object o : set)
+ rets[i--] = (String) o;
+
+ Tuple<Integer, String[]> ret = new Tuple<Integer, String[]>(
+ def.first(), rets);
+
+ switch (u) {
+ case RADIO:
+ drawRadio(getSingleData(cui.getTitle()), ret);
+ break;
+ case DROPDOWN:
+ drawDropdown(getSingleData(cui.getTitle()), ret);
+ break;
+ default:
+ throw new RuntimeException("Unexpected ComplexUI
type.");
+ }
+ }
+
+ private static String raw(Tuple<Integer, String[]> t) {
+ return (t.second())[0];
+ }
+
+ private static Tuple<Integer, String> single(Tuple<Integer, String[]>
t) {
+ return new Tuple<Integer, String>(t.first(), raw(t));
+ }
+
+ private Tuple<Integer, String> getSingleData(BaseType b) {
+ return single(getData(b));
+ }
+
+ private String getRawData(BaseType b) {
+ return raw(getData(b));
+ }
+
+ // ////////////////////////////////////////////////////
+ private Tuple<Integer, String[]> getData(BaseType b) // FIXME
+ {
+ if (b.getText() != null && !b.getText().equals(""))
+ return new Tuple<Integer,
String[]>(objectMap.registerObject(b),
+ new String[] { b.getText().trim() });
// maybe a list
+ else {
+ Tuple<String, String> t =
XMLUtil.parseXPath(b.getXpath());
+ NSContext ns = objectMap.getMap();
+ try {
+ NodeList nl = XMLUtil.query(ns, t.second(),
objectMap
+ .getDocument(t.first()));
+ int sz = nl.getLength();
+ String[] lst = new String[sz];
+ String value;
+ for (int i = 0; i < sz; i++) {
+ value = nl.item(i).getNodeValue();
+ if (value == null) {
+ value =
nl.item(i).getTextContent();
+ }
+ lst[i] = value;
+ }
+ return new Tuple<Integer, String[]>(objectMap
+ .registerObject(nl), lst);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ }
+
+ public void drawPasswordBox(String title, Tuple<Integer, String> t) {
+ logger.debug("WA --- Drawing a password box : title: \"" +
title
+ + "\" value : \"" + t.second() + "\"");
+ try {
+ html.singlerow_begin(5);
+ html.passtextbox(t.first() + "", title, t.second());
+ html.singlerow_end();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ // ////////////////////////////////////////////////////
+ // TODO: External HTMLUtil.java -> HTML tags and so on
+ public void drawTextBox(String title, Tuple<Integer, String> t) {
+ logger.debug("WA --- Drawing a box : title: \"" + title
+ + "\" value : \"" + t.second() + "\"");
+ try {
+ html.singlerow_begin(5);
+ html.textbox(t.first() + "", title, t.second());
+ html.singlerow_end();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void drawRadio(Tuple<Integer, String> title,
+ Tuple<Integer, String[]> values) {
+ logger.debug("WA --- Drawing a radio : title: \"" +
title.second()
+ + "\"");
+ // for( String s : values.second() ) println("\nradio value :
" + s);
+ try {
+ html.singlerow_begin(5);
+ html.radio(values.first() + "", title.second(),
values.second());
+ html.singlerow_end();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void drawDropdown(Tuple<Integer, String> title,
+ Tuple<Integer, String[]> values) {
+ logger.debug("WA --- Drawing a drop-down : title: \"" +
title.second()
+ + "\"");
+ // for( String s : values.second() ) println("\ndrop-down
value : " +
+ // s);
+ try {
+ html.singlerow_begin(5);
+ html.dropdown(values.first() + "", title.second(),
values.second());
+ html.singlerow_end();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public void drawRadiogroup(Tuple<Integer, String[]> values, String
innerHTML) {
+ logger.debug("Drawing a group radio: ");
+ boolean enabled = false;
+ // FIXME: Hardcoded values
+ try {
+ html.singlerow_begin(5);
+ html.radiogroup_begin("key3", "Grouped box", "yes",
"no", enabled);
+ println(innerHTML);
+ html.radiogroup_end();
+ html.singlerow_end();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/ObjectMap.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/ObjectMap.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config/ObjectMap.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,196 @@
+package org.perfsonar.webadmin.base2.config;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.net.MalformedURLException;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+
+import org.apache.log4j.Logger;
+
+import org.perfsonar.webadmin.base2.util.NSContext;
+import org.perfsonar.webadmin.base2.util.Tuple;
+import org.perfsonar.webadmin.base2.util.WAXMLReader;
+import org.perfsonar.webadmin.base2.util.XMLUtil;
+import org.perfsonar.webadmin.base2.waschema.v20090201.BaseType;
+import org.perfsonar.webadmin.base2.waschema.v20090201.NsMap;
+import org.perfsonar.webadmin.base2.waschema.v20090201.WebAdminInterface;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * wrapper for Hashtable
+ *
+ *
+ */
+@SuppressWarnings("serial")
+public class ObjectMap extends Hashtable<Integer, Object> {
+
+ private Logger logger = Logger.getLogger(ObjectMap.class);
+
+ Tuple<WebAdminInterface, JAXBContext> waconfig;
+ String waconfigfile = "";
+ Hashtable<String, Document> file2doc = new Hashtable<String,
Document>();
+ String basePath = "";
+ NSContext namespaces;
+ boolean sync = false;
+
+ public ObjectMap(String basePath, String confPath, String file) {
+ // TODO: Unix paths
+ waconfigfile = basePath + "/" + confPath + "/" + file;
+ try {
+ waconfig = WAXMLReader.parseFile(waconfigfile);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ } catch (JAXBException e) {
+ e.printStackTrace();
+ }
+ this.basePath = basePath;
+ makeMap();
+ }
+
+ private void makeMap() {
+ NSContext nsc = new NSContext();
+ List map = getWA().getMap();
+ NsMap ns;
+ for (Object o : map) {
+ ns = (NsMap) o;
+ nsc.put(ns.getNs(), ns.getUrl());
+ }
+ namespaces = nsc;
+ }
+
+ public NSContext getMap() {
+ return namespaces;
+ }
+
+ public WebAdminInterface getWA() {
+ return waconfig.first();
+ }
+
+ private int _registerObject(Object ui) {
+ int id = ((Object) ui).hashCode();
+ put(id, ui);
+ return id;
+
+ }
+
+ private boolean saveExternal() {
+ Set<Entry<String, Document>> entrySet = file2doc.entrySet();
+ for (Entry<String, Document> o : entrySet) {
+ try {
+ XMLUtil.writeXml(o.getValue(), new
java.io.FileOutputStream(
+ basePath + "/" + o.getKey()));
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public synchronized boolean save() {
+ boolean saved = saveExternal();
+ if (saved) {
+ sync = false;
+ }
+ return saved;
+ }
+
+ public synchronized int registerObject(BaseType ui) {
+ return _registerObject(ui);
+ }
+
+ public synchronized int registerObject(NodeList n) {
+ return _registerObject(n);
+ }
+
+ public synchronized Document getDocument(String uri) throws Exception
{
+ Document ret = file2doc.get(uri);
+ if (ret != null)
+ return ret;
+ String path = new File(basePath + "/" +
uri).toURI().toASCIIString();
+ logger.debug("Attempting to locate URI : \"" + path + "\"");
+ file2doc.put(uri, (ret = XMLUtil.readDocument(path)));
+ return ret;
+ }
+
+ public synchronized void updateObjects(Map<String, String[]> pmap) {
+ Object myobj = null;
+ for (Entry<String, String[]> entry : pmap.entrySet()) {
+ try {
+ Integer inputName =
Integer.parseInt(entry.getKey());
+ myobj = get(inputName);
+ if (myobj == null) {
+ logger.warn("element " +
entry.getKey() + " not found !");
+ }
+ if (myobj instanceof BaseType)
+ updateBase((BaseType) myobj,
entry.getValue());
+ else if (myobj instanceof NodeList)
+ updateNodeList((NodeList) myobj,
entry.getValue());
+ else {
+ logger.warn(" Cannot match object
type :"
+ + myobj.getClass());
+ }
+ } catch (NumberFormatException ex) {
+ logger.info("Key - " + entry.getKey()
+ + " is not a number - ignore
it");
+ }
+ }
+ sync = true;
+ }
+
+ public synchronized boolean needSync() {
+ return sync;
+ }
+
+ private void updateBase(BaseType o, String[] valueArray) {
+ logger.debug("Should update base type");
+ if (valueArray.length == 0) {
+ logger.debug("value is empty");
+ return;
+ }
+
+ String s = valueArray[0];
+ for (int i = 1; i < valueArray.length; i++)
+ s += "," + valueArray[i];
+ // NOTE:Assuming that this is a text element (not xpath)
+ o.setText(s);
+ logger.debug("base type updated");
+ }
+
+ private void updateNodeList(NodeList t, String[] valueArray) {
+ if (t.getLength() == 0) {
+ logger.debug("empty node list");
+ return;
+ } else if (valueArray.length == 0) {
+ logger.debug("value is empty !");
+ return;
+ }
+ Node n = t.item(0);
+ String s = valueArray[0];
+ for (int i = 1; i < valueArray.length; i++) {
+ s += "," + valueArray[i];
+ }
+ if (n.getNodeValue() != null) {
+ // if value comes from tag attribute
+ n.setNodeValue(s);
+ } else {
+ // if value comes from tag value
+ n.setTextContent(s);
+ }
+
+ logger.debug("list node updated");
+ }
+
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest/SelfTestMessageParser.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest/SelfTestMessageParser.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest/SelfTestMessageParser.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,75 @@
+package org.perfsonar.webadmin.base2.selftest;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.io.SAXReader;
+import org.dom4j.tree.DefaultElement;
+import org.jaxen.JaxenException;
+import org.jaxen.SimpleNamespaceContext;
+import org.jaxen.XPath;
+import org.jaxen.dom4j.Dom4jXPath;
+
+public class SelfTestMessageParser {
+
+ private Logger logger=Logger.getLogger(SelfTestMessageParser.class);
+
+
+ private InputStream convert (String myString){
+ byte currentXMLBytes[] = myString.getBytes();
+ ByteArrayInputStream byteArrayInputStream = new
ByteArrayInputStream(currentXMLBytes);
+ return byteArrayInputStream;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ public Map<String,String> parseMessage(String str){
+
+ Map<String,String> result=new HashMap<String, String>();
+
+ SAXReader saxReader = new SAXReader();
+
+ try {
+ Document document = saxReader.read(convert(str));
+ Map<String,String> map = new HashMap<String,String>();
+ map.put("nmwg", "http://ggf.org/ns/nmwg/base/2.0/");
+ map.put("nmwgr",
"http://ggf.org/ns/nmwg/result/2.0/");
+
+ XPath xpath = new Dom4jXPath("//nmwg:metadata");
+ xpath.setNamespaceContext(new
SimpleNamespaceContext(map));
+
+ List<DefaultElement> nodes =
(List<DefaultElement>)xpath.selectNodes(document);
+ for(DefaultElement element:nodes){
+ String id=element.attributeValue("id");
+ String
eventType=element.valueOf("//nmwg:metadata[@id='"+id+"']/nmwg:eventType");
+ if(eventType.contains("success")){
+ logger.debug("SUCCESS - "+eventType);
+ }else if(eventType.contains("error")){
+ XPath xpath1 = new
Dom4jXPath("//nmwg:data[@metadataIdRef='"+id+"']//nmwgr:datum");
+ xpath1.setNamespaceContext(new
SimpleNamespaceContext(map));
+ DefaultElement
de=(DefaultElement)xpath1.selectSingleNode(document);
+
+ String cause="";
+
+ if(de!=null){
+ cause=de.getText();
+ }
+ logger.debug("ERRO - "+eventType+" :
"+cause);
+ result.put(eventType, cause);
+ }
+ }
+ } catch (DocumentException e) {
+ e.printStackTrace();
+ } catch (JaxenException e) {
+ e.printStackTrace();
+ }
+ return result;
+ }
+
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/BasicConfigurationServlet.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/BasicConfigurationServlet.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/BasicConfigurationServlet.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,121 @@
+package org.perfsonar.webadmin.base2.servlet;
+
+import java.io.IOException;
+import java.util.Locale;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.log4j.Logger;
+
+import org.perfsonar.webadmin.base2.config.ObjectMap;
+import org.perfsonar.webadmin.base2.servlet.util.Base64;
+import org.perfsonar.webadmin.base2.servlet.util.ConfigurationServletHelper;
+import org.perfsonar.webadmin.base2.waschema.v20090201.Credential;
+
+/**
+ *
+ * @author Slawomir Trzaszczka
+ *
+ */
+@SuppressWarnings("serial")
+public class BasicConfigurationServlet extends HttpServlet {
+
+ private final Logger logger = Logger
+ .getLogger(BasicConfigurationServlet.class);
+ private ObjectMap map;
+ private Credential credential;
+
+ public void init(ServletConfig arg0) throws ServletException {
+ super.init(arg0);
+ logger.debug("Servlet initialized");
+ map =
ConfigurationServletHelper.objectMap(getServletContext());
+ credential=map.getWA().getCredential();
+ }
+
+ /**
+ *
+ * get data from config file and send it to form !
+ *
+ */
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws
ServletException, IOException {
+
+ String auth = request.getHeader("Authorization");
+
+ if (!allowUser(auth)) {
+ response.setHeader("WWW-Authenticate", "BASIC
realm=\"users\"");
+
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
+ } else {
+ logger.debug("DO READ");
+
+ ConfigurationServletHelper config = new
ConfigurationServletHelper(
+ request, getServletContext());
+ String htmlContent = config.getHTMLContent();
+ if (htmlContent != null) {
+ request.setAttribute("form", htmlContent);
+ } else {
+ logger.debug("form html content is null !");
+ }
+
getServletConfig().getServletContext().getRequestDispatcher(
+
"/index.jsp?page=form").forward(request, response);
+ }
+
+ }
+
+ /**
+ *
+ * save data
+ *
+ */
+ protected void doPost(HttpServletRequest request,
+ HttpServletResponse response) throws
ServletException, IOException {
+
+ ConfigurationServletHelper config = new
ConfigurationServletHelper(
+ request, response, getServletContext());
+ logger.debug("DO WRITE");
+
+ String urlPath = "index.jsp?page=save";
+
+ if (config.processData()) {
+ urlPath += "&ok";
+ }
+ getServletContext().removeAttribute("ObjectMap");
+ credential=config.objectMap().getWA().getCredential();
+
+ response.sendRedirect(urlPath);
+ }
+
+ /**
+ * checks if the user is allowed to invoke this servlet
+ *
+ * @param auth
+ * @param username
+ * @param password
+ * @return
+ * @throws IOException
+ */
+ protected boolean allowUser(String auth) throws IOException {
+ if (auth == null) {
+ return false;
+ }
+
+ if (!auth.toUpperCase(Locale.getDefault()).startsWith("BASIC
")) {
+ return false;
+ }
+
+ String userpassEncoded = auth.substring(6);
+ String userpassDecoded = new String(Base64
+ .decodeString(userpassEncoded));
+
+ if (userpassDecoded.equals(credential.getUsername() + ":"
+ + credential.getPassword()))
+ return true;
+ else
+ return false;
+ }
+
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/SelfTestServlet.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/SelfTestServlet.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/SelfTestServlet.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,85 @@
+package org.perfsonar.webadmin.base2.servlet;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.perfsonar.webadmin.base2.config.ObjectMap;
+import org.perfsonar.webadmin.base2.selftest.SelfTestMessageParser;
+import org.perfsonar.webadmin.base2.servlet.util.ConfigurationServletHelper;
+import org.perfsonar.webadmin.base2.test.SOAPClient;
+import org.perfsonar.webadmin.base2.test.SOAPClientException;
+
+@SuppressWarnings("serial")
+public class SelfTestServlet extends HttpServlet {
+
+ private final String SELF_TEST_FILE = "/wa/soapMessages/selfTest.xml";
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+
+ String path = getServletContext().getRealPath("/");
+ String basePath = path + "/WEB-INF";
+ String redirectURL = "index.jsp?page=selfTest";
+
+ ObjectMap objectMap = new ObjectMap(basePath,
+ ConfigurationServletHelper.WA_CONFIG_PATH,
+ ConfigurationServletHelper.WA_FILE_NAME);
+ String accessPoint = objectMap.getWA().getServiceInformation()
+ .getAccessPoint();
+
+ SOAPClient soapClient = new SOAPClient(accessPoint);
+ String messageContent = getFileContent(path + SELF_TEST_FILE);
+
+ if (messageContent == null) {
+ req.setAttribute("errorMessage", "Message is null");
+ } else {
+ String result;
+ try {
+ result =
soapClient.sendMessage(messageContent);
+ if (result != null) {
+ SelfTestMessageParser parser=new
SelfTestMessageParser();
+ Map<String,String>
errors=parser.parseMessage(result);
+ if(errors.isEmpty()){
+ redirectURL = redirectURL +
"&ok";
+ }else{
+
getServletContext().setAttribute("errors", errors);
+ }
+ } else {
+ req.setAttribute("errorMessage",
"Result is null");
+ }
+ } catch (SOAPClientException e) {
+ getServletContext()
+ .setAttribute("errorMessage",
e.getMessage());
+ }
+ }
+
+ resp.sendRedirect(redirectURL);
+ }
+
+ private String getFileContent(String url) {
+
+ byte[] buffer = new byte[(int) new File(url).length()];
+ FileInputStream f;
+ try {
+ f = new FileInputStream(url);
+ f.read(buffer);
+ return new String(buffer);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/Base64.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/Base64.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/Base64.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,163 @@
+package org.perfsonar.webadmin.base2.servlet.util;
+
+public class Base64 {
+ // Mapping table from 6-bit nibbles to Base64 characters.
+ private static char[] map1 = new char[64];
+ static {
+ int i = 0;
+ for (char c = 'A'; c <= 'Z'; c++)
+ map1[i++] = c;
+ for (char c = 'a'; c <= 'z'; c++)
+ map1[i++] = c;
+ for (char c = '0'; c <= '9'; c++)
+ map1[i++] = c;
+ map1[i++] = '+';
+ map1[i++] = '/';
+ }
+
+ // Mapping table from Base64 characters to 6-bit nibbles.
+ private static byte[] map2 = new byte[128];
+ static {
+ for (int i = 0; i < map2.length; i++)
+ map2[i] = -1;
+ for (int i = 0; i < 64; i++)
+ map2[map1[i]] = (byte) i;
+ }
+
+ public Base64() {
+
+ }
+
+ /**
+ * Encodes a string into Base64 format. No blanks or line breaks are
+ * inserted.
+ *
+ * @param s
+ * a String to be encoded.
+ * @return A String with the Base64 encoded data.
+ */
+ public static String encodeString(String s) {
+ return new String(encode(s.getBytes()));
+ }
+
+ /**
+ * Encodes a byte array into Base64 format. No blanks or line breaks
are
+ * inserted.
+ *
+ * @param in
+ * an array containing the data bytes to be encoded.
+ * @return A character array with the Base64 encoded data.
+ */
+ public static char[] encode(byte[] in) {
+ return encode(in, in.length);
+ }
+
+ /**
+ * Encodes a byte array into Base64 format. No blanks or line breaks
are
+ * inserted.
+ *
+ * @param in
+ * an array containing the data bytes to be encoded.
+ * @param iLen
+ * number of bytes to process in <code>in</code>.
+ * @return A character array with the Base64 encoded data.
+ */
+ public static char[] encode(byte[] in, int iLen) {
+ int oDataLen = (iLen * 4 + 2) / 3; // output length without
padding
+ int oLen = ((iLen + 2) / 3) * 4; // output length including
padding
+ char[] out = new char[oLen];
+ int ip = 0;
+ int op = 0;
+ while (ip < iLen) {
+ int i0 = in[ip++] & 0xff;
+ int i1 = ip < iLen ? in[ip++] & 0xff : 0;
+ int i2 = ip < iLen ? in[ip++] & 0xff : 0;
+ int o0 = i0 >>> 2;
+ int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
+ int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
+ int o3 = i2 & 0x3F;
+ out[op++] = map1[o0];
+ out[op++] = map1[o1];
+ out[op] = op < oDataLen ? map1[o2] : '=';
+ op++;
+ out[op] = op < oDataLen ? map1[o3] : '=';
+ op++;
+ }
+ return out;
+ }
+
+ /**
+ * Decodes a string from Base64 format.
+ *
+ * @param s
+ * a Base64 String to be decoded.
+ * @return A String containing the decoded data.
+ * @throws IllegalArgumentException
+ * if the input is not valid Base64 encoded data.
+ */
+ public static String decodeString(String s) {
+ return new String(decode(s));
+ }
+
+ /**
+ * Decodes a byte array from Base64 format.
+ *
+ * @param s
+ * a Base64 String to be decoded.
+ * @return An array containing the decoded data bytes.
+ * @throws IllegalArgumentException
+ * if the input is not valid Base64 encoded data.
+ */
+ public static byte[] decode(String s) {
+ return decode(s.toCharArray());
+ }
+
+ /**
+ * Decodes a byte array from Base64 format. No blanks or line breaks
are
+ * allowed within the Base64 encoded data.
+ *
+ * @param in
+ * a character array containing the Base64 encoded data.
+ * @return An array containing the decoded data bytes.
+ * @throws IllegalArgumentException
+ * if the input is not valid Base64 encoded data.
+ */
+ public static byte[] decode(char[] in) {
+ int iLen = in.length;
+ if (iLen % 4 != 0)
+ throw new IllegalArgumentException(
+ "Length of Base64 encoded input
string is not a multiple of 4.");
+ while (iLen > 0 && in[iLen - 1] == '=')
+ iLen--;
+ int oLen = (iLen * 3) / 4;
+ byte[] out = new byte[oLen];
+ int ip = 0;
+ int op = 0;
+ while (ip < iLen) {
+ int i0 = in[ip++];
+ int i1 = in[ip++];
+ int i2 = ip < iLen ? in[ip++] : 'A';
+ int i3 = ip < iLen ? in[ip++] : 'A';
+ if (i0 > 127 || i1 > 127 || i2 > 127 || i3 > 127)
+ throw new IllegalArgumentException(
+ "Illegal character in Base64
encoded data.");
+ int b0 = map2[i0];
+ int b1 = map2[i1];
+ int b2 = map2[i2];
+ int b3 = map2[i3];
+ if (b0 < 0 || b1 < 0 || b2 < 0 || b3 < 0)
+ throw new IllegalArgumentException(
+ "Illegal character in Base64
encoded data.");
+ int o0 = (b0 << 2) | (b1 >>> 4);
+ int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2);
+ int o2 = ((b2 & 3) << 6) | b3;
+ out[op++] = (byte) o0;
+ if (op < oLen)
+ out[op++] = (byte) o1;
+ if (op < oLen)
+ out[op++] = (byte) o2;
+ }
+ return out;
+ }
+
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/ConfigurationServletHelper.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/ConfigurationServletHelper.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util/ConfigurationServletHelper.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,218 @@
+package org.perfsonar.webadmin.base2.servlet.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.apache.log4j.Logger;
+
+import org.perfsonar.webadmin.base2.config.HTMLGenerator;
+import org.perfsonar.webadmin.base2.config.ObjectMap;
+import org.perfsonar.webadmin.base2.util.HTMLUtil;
+import org.perfsonar.webadmin.base2.util.HTMLUtilStringBuffer;
+import org.perfsonar.webadmin.base2.util.StringOutputStream;
+import org.perfsonar.webadmin.base2.util.Tuple;
+
+public class ConfigurationServletHelper {
+
+ private final Logger logger = Logger
+ .getLogger(ConfigurationServletHelper.class);
+
+ static final short SESSION_INTERVAL = 3600;
+ /**
+ * localization of the WA configuration file
+ */
+ public static final String WA_CONFIG_PATH = "classes/perfsonar/conf";
+
+ /**
+ * file name of the wa.xml file
+ */
+ public static final String WA_FILE_NAME = "webAdminConfig.xml";
+
+ private HttpServletRequest request;
+ private HttpServletResponse response;
+ private PrintStream out;
+ private HttpSession session;
+ private ServletContext context;
+ private HTMLGenerator gen;
+
+ public static synchronized ObjectMap objectMap(ServletContext
servletContext) {
+ ObjectMap ret = (ObjectMap)
servletContext.getAttribute("ObjectMap");
+ if (ret != null)
+ return ret;
+ // TODO: Fix Unix-paths
+ String basePath = servletContext.getRealPath("/") + "WEB-INF";
+ ret = new ObjectMap(basePath, WA_CONFIG_PATH, WA_FILE_NAME);
+ servletContext.setAttribute("ObjectMap", ret);
+ return ret;
+ }
+
+ public ConfigurationServletHelper(HttpServletRequest request,
+ HttpServletResponse response, ServletContext context)
{
+ this.request = request;
+ this.response = response;
+ this.context = context;
+ try {
+ this.out = new
PrintStream(response.getOutputStream());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ this.gen = new HTMLGenerator();
+ this.session = request.getSession(true);
+
+ response.setContentType("text/html");
+ // Set max interval to session
+ if (session.isNew()) {
+ session.setMaxInactiveInterval(SESSION_INTERVAL);
+ }
+
+ }
+
+ public ConfigurationServletHelper(HttpServletRequest request,
+ ServletContext context) {
+ this.request = request;
+ this.session = request.getSession(true);
+ this.context = context;
+ this.gen = new HTMLGenerator();
+
+ // Set max interval to session
+ if (session.isNew()) {
+ session.setMaxInactiveInterval(SESSION_INTERVAL);
+ }
+
+ }
+
+ public ObjectMap objectMap() {
+ return objectMap(context);
+ }
+
+ public String getHTMLContent() {
+ String pageParameterValue = getHttpParameter("page");
+ return getHTMLContent(pageParameterValue);
+ }
+
+ /**
+ *
+ * displays page where pageType is 'basic' or other ...
+ *
+ * @param pageType
+ */
+ private void displayPage(String pageType) {
+ // TODO: change location of this piece of code
+ Tuple<String, String> ret = renderPage(pageType);
+
+ if (ret != null) {
+ try {
+ HTMLUtil u = new HTMLUtil(out);
+
+ u.preamble();
+ u.form_begin("form_key", ret.first(),
"config?page="
+ + ret.first(), 1);
+ u.simplelineoftext("Please fill in the
following fields:",
+ "green");
+ out.println(ret.second());
+ u.form_end();
+ u.simplelineoftext("2",
+ "<a
href=\"/wa/index.jsp\">Return to main page</a>",
+ "green");
+ u.postscript();
+ } catch (Exception e) {
+ e.printStackTrace();
+ response.setStatus(500);
+ }
+ } else {
+ response.setStatus(404);
+ }
+
+ }
+
+ private String getHTMLContent(String pageType) {
+ Tuple<String, String> ret = renderPage(pageType);
+
+ StringBuffer sb = new StringBuffer();
+
+ if (ret != null) {
+ try {
+ HTMLUtilStringBuffer u = new
HTMLUtilStringBuffer(sb);
+
+ u.preamble();
+ u.form_begin("form_key", ret.first(),
"config?page="
+ + ret.first(), 1);
+ u.simplelineoftext("Please fill in the
following fields:",
+ "green");
+ sb.append(ret.second());
+ u.form_end();
+ u.postscript();
+ String htmlContent = u.getContent();
+ return htmlContent;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ return null;
+ }
+
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ public boolean processData() {
+ boolean saved = false;
+ logger.debug("Processing client data.");
+ objectMap().updateObjects(request.getParameterMap());
+ if (objectMap().save()) {
+ logger.debug("configuration saved");
+ saved = true;
+ } else {
+ logger.debug("problem with saving configuration");
+ displayPage(getHttpParameter("form_key"));
+ saved = false;
+ }
+ logger.debug("Done processing client data.");
+
+ return saved;
+ }
+
+ /**
+ *
+ * get Parameter from HttpRequest
+ *
+ * @param s
+ * @return
+ */
+ private String getHttpParameter(String s) {
+ String p = request.getParameter(s);
+ if (p == null) {
+ logger.debug("parameter " + s + " not found in
HTTPRequest");
+ return null;
+ } else {
+ return p.trim();
+ }
+ }
+
+ /**
+ * return Tuple where first param is http value and second is HTML
content
+ *
+ * @param page
+ * @return
+ */
+ private Tuple<String, String> renderPage(String page) {
+ boolean found = false;
+ StringOutputStream sout = new StringOutputStream();
+ if (page == null) {
+ return null;
+ } else {
+ logger.debug("Looking up page \"" + page + "\"");
+ found = gen.translate(page, objectMap(), new
PrintStream(sout));
+ logger.debug("Page \"" + page + "\" found " + found);
+ return new Tuple<String, String>(found ? page : null,
sout
+ .toString());
+ }
+ }
+
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClient.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClient.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClient.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,73 @@
+package org.perfsonar.webadmin.base2.test;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.BasicResponseHandler;
+import org.apache.http.impl.client.DefaultHttpClient;
+
+/**
+ *
+ * Simple SOAP client
+ *
+ * @author Slawomir Trzaszczka
+ *
+ */
+public class SOAPClient {
+
+ private final String url;
+
+ public SOAPClient(String url) {
+ this.url = url;
+ }
+
+ /**
+ *
+ * sends request to webService and returns content of the response
+ *
+ * @param content
+ * - content of the message (soap message)
+ * @return
+ * @throws UnsupportedEncodingException
+ */
+ public String sendMessage(String content) throws SOAPClientException {
+
+ HttpClient httpclient = new DefaultHttpClient();
+ HttpPost httpPost = new HttpPost(url);
+
+ // define required HTTP headers
+ httpPost.setHeader("Content-type", "text/xml;
charset=UTF-8;");
+ httpPost.setHeader("SOAPAction", "");
+
+ StringEntity entity;
+ try {
+ entity = new StringEntity(content);
+ httpPost.setEntity(entity);
+
+ ResponseHandler<String> responseHandler = new
BasicResponseHandler();
+
+ try {
+ return httpclient.execute(httpPost,
responseHandler);
+ } catch (ClientProtocolException e) {
+ e.printStackTrace();
+ throw new SOAPClientException(e);
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new SOAPClientException(e);
+ } finally {
+ if (httpclient != null) {
+
httpclient.getConnectionManager().shutdown();
+ }
+ }
+ } catch (UnsupportedEncodingException e1) {
+ e1.printStackTrace();
+ throw new SOAPClientException(e1);
+ }
+ }
+
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClientException.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClientException.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/test/SOAPClientException.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,9 @@
+package org.perfsonar.webadmin.base2.test;
+
+@SuppressWarnings("serial")
+public class SOAPClientException extends Exception{
+
+ public SOAPClientException(Throwable throwable) {
+ super(throwable);
+ }
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtil.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtil.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtil.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,314 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.io.IOException;
+import java.io.PrintStream;
+
+public class HTMLUtil {
+ private PrintStream out = null;
+ private int colspan = 3;
+
+ public HTMLUtil(PrintStream out) {
+ this.out = out;
+ }
+
+ public void println(String s) {
+ if (out != null)
+ out.println(s);
+ }
+
+ public static String tag(String name, String attr, String body) {
+ return "<" + name + attr + ">" + body + "</" + name + ">\n";
+ }
+
+ public static String tag(String name, String body) {
+ return "<" + name + ">" + body + "</" + name + ">\n";
+ }
+
+ public static String atag(String name, String attr) {
+ return "<" + name + attr + "/>\n";
+ }
+
+ public static String btag(String name, String body, String... atts) {
+ String ret = "<" + name + " ";
+ if (atts != null && atts.length > 0) {
+ for (String s : atts)
+ ret += s + " ";
+ }
+ return ret + ">" + body + "</" + name + ">\n";
+ }
+
+ public static String att(String attr, String val) {
+ if (val == null)
+ return "";
+ else
+ return " " + attr + " = \"" + val + "\" ";
+ }
+
+ public static String table(boolean b, String body) {
+ return btag("table", body, att("center", (b ? "center" :
null)));
+ }
+
+ public static String div(String cls, String id, String align, String
style,
+ String body) {
+ return btag("div", body, att("class", cls), att("id", id),
att("align",
+ align), att("style", style));
+ }
+
+ public static String form(String action, String name, String method,
+ String onsubmit, String body) {
+ return btag("form", body, att("action", action), att("name",
name),
+ att("method", method), att("onsubmit",
onsubmit));
+ }
+
+ public static String p(String cls, String body) {
+ return btag("p", body, att("class", cls));
+ }
+
+ public static String input(String type, String name, String value,
+ String onClick, String body) {
+ return btag("input", body, att("type", type), att("name",
name), att(
+ "value", value), att("onClick", onClick));
+ }
+
+ public static String radio_chk(String type, String name, String value,
+ String onClick, String body) {
+ return btag("input", body, att("type", type), att("name",
name), att(
+ "value", value), att("onClick", onClick),
+ att("checked", "true"));
+ }
+
+ public static String input_id(String type, String id, String value,
+ String onClick, String body) {
+ return btag("input", body, att("type", type), att("id", id),
att(
+ "value", value), att("onClick", onClick));
+ }
+
+ public static String colouredtext(String text, String colour) {
+ return tag("font", att("color", colour), text);
+ }
+
+ private static final String doctype = "<!DOCTYPE HTML PUBLIC
\"-//W3C//DTD HTML 4.01"
+ + " Transitional//EN\"
\"http://www.w3.org/TR/html4/loose.dtd\"> ";
+ private static final String cssFile = "default.css";
+ private static final String onClickAttribute = "
onclick=\"checkIt(this);\" ";
+ private static final String nbsp = " ";
+ private static final String checkedAttribute = " checked =\"true\" ";
//
+ private static final String blockedAttribute = "
style=\"display:block;\" ";
+ private static final String unblockedAttribute = "
style=\"display:none;\" ";
+
+ private static String times(int i) {
+ String ret = "";
+ for (int j = 0; j < i; j++)
+ ret += nbsp;
+ return ret;
+ }
+
+ private String getCSS() {
+ String css = "<link rel=\"stylesheet\" type=\"text/css\"
href=\""
+ + cssFile + "\"/>";
+ return css;
+ }
+
+ private String getScript() // FIXME Vl_ stuff
+ {
+ return "<script src=\"Service_Admin.js\">"
+ + "</script>\n"
+ + "<script src=\"wz_tooltip.js\">"
+ + "</script>\n"
+ + "<script src=\"Service_Admin.js\">"
+ + "</script>\n"
+ + "<script type=\"text/javascript\">\n"
+ + "function checkIt(el) {\n"
+ // el = clicked element
+ // el.value = value attribute of clicked
element el
+ // el.name = name attribute of clicked
element el
+ // if the clicked element's value is the same
+ // as the hidden tag's (whose id=Vl_ + name
clicked elt)
+ // default value then
+ // disable all elements whose id is the same
as the
+ // clicked element's name
+ // +
+ // "document.write(el.value
+\"\\n\"+document.getElementById(\"Vl_\"+el.name).value+\"\\n\"+document.getElementById(el.name).style.display)\n"
+ + "if (el.value == "
+ +
"document.getElementById(\"Vl_\"+el.name).value) {\n"
+ +
"document.getElementById(el.name).style.display = "
+ + "\"block\";\n" + "}\n" + "else {\n"
+ +
"document.getElementById(el.name).style.display ="
+ + " \"none\";\n" + "}\n" + "}\n" +
"</script>\n";
+ }
+
+ public void preamble() throws IOException {
+ println(doctype);
+ println("<html>");
+ println("<head>" + getCSS() + "</head>");
+ println("<title>");
+ println("perfSONAR services configuration wizard");
+ println("</title>");
+ println("<body>");
+ println(getScript());
+ println("<div class=\"main\">");
+ }
+
+ public void postscript() throws IOException {
+ println("</div>");
+ println("</body>");
+ println("</html>");
+ }
+
+ // Specification:
+ // for each grouped radio elt
+ // there exists a hidden tag
+ // whose
+ // id = Vl_+name attr of radio elt
+ // and
+ // name denotes the disabled value
+ // there exist other elements
+ // whose
+ // id = name attr of radio elt
+
+ public void radiogroup_begin(String id, String title, String yesval,
+ String noval, boolean enabled) throws IOException {
+ println(
+ // att("align","center"),
+ tag("tr", tag("td", title)
+ + // ,att("colspan",""+3)
+ times(13)
+ + tag("td", atag("input", att("type",
"hidden")
+ + att("value", yesval) +
att("id", "Vl_" + id))
+ + tag("input", att("type",
"radio") + att("name", id)
+ +
att("value", yesval) + onClickAttribute
+ + (enabled ?
checkedAttribute : ""), times(2)
+ + yesval +
nbsp)
+ + tag("input", att("type",
"radio") + att("name", id)
+ +
att("value", noval) + onClickAttribute
+ + (!enabled ?
checkedAttribute : ""), times(2)
+ + noval +
times(14)))));
+ println("<tr><td>" + "<div " + att("id", id)
+ + att("class", "inner_properties")
+ + (!enabled ? unblockedAttribute :
blockedAttribute) + " > ");// +
+
// "<div "+
+
// att("class","properties")
+
// +
+
// " >");
+ table_begin();
+ }
+
+ public void radiogroup_end() {
+ table_end();
+
+ println("</div></td></tr>");
+ }
+
+ private void generictextbox(String type, String key, String title,
+ String val) throws IOException {
+
+ final int size = 30;
+ println(tag("tr", tag("td", att("colspan", "" + colspan),
title)
+ + tag("td", att("align", "left"),
atag("input", att("class",
+ "input_style")
+ + att("type", type)
+ + att("name", key)
+ + att("size", "" + size) +
att("value", val))))
+
+ );
+ }
+
+ public void textbox(String key, String title, String val)
+ throws IOException {
+ generictextbox("text", key, title, val);
+ }
+
+ public void passtextbox(String key, String title, String val)
+ throws IOException {
+ generictextbox("password", key, title, val);
+ }
+
+ // assumes keys.length = vals.length
+ public void radio(String key, String title, String[] vals)
+ throws IOException {
+ String opts = "";
+ for (int i = 0; i < vals.length; i++) {
+ opts += tag("input", att("type", "radio") +
att("name", key)
+ + att("value", vals[i]) + (i == 0 ?
checkedAttribute : ""),
+ times(2) + vals[i] + nbsp);
+ }
+ println(tag("tr", tag("td", att("colspan", "" + colspan),
title)
+ + tag("td", opts)));
+ }
+
+ public void dropdown(String key, String title, String[] vals) {
+ String opts = "";
+ for (int i = 0; i < vals.length; i++)
+ opts += tag("option", att("value", vals[i]), vals[i]);
+ println(tag("tr", tag("td", att("colspan", "" + colspan),
title)
+ + tag("td", att("align", "left"),
tag("select",
+ att("name", key), opts))));
+ }
+
+ public void form_begin(String key, String val, String url, int
spacing)
+ throws IOException {
+ println("<div "
+ + att("class", "properties")
+ + " > "
+ +
+ // "<center>" +
+ "<form action=\"" + url + "\"
method=\"POST\">\n"
+ + "<input type=\"hidden\" name=\"" + key +
"\" value=\"" + val
+ + "\">\n" + "<table align=\"center\" "
+ + att("cellspacing", spacing + "%") + " >");
+ }
+
+ public void form_end() throws IOException {
+ println(tag("tr", tag("td", nbsp)
+ + tag("td", att("align", "right")
+ + att("colspan", "" +
colspan), atag("input", att(
+ "type", "submit")
+ + att("name", "submit") +
att("value", "Submit"))))
+ + "</table><p/>\n" + "</form>" +
+ // "</center>"+
+ "</div>");
+ }
+
+ public void singlerow_begin(int spacing, int span) {
+
+ println("<tr><td " + att("colspan", "" + span) + " >");
+ table_begin(spacing);
+ }
+
+ public void singlerow_begin(int spacing) {
+ singlerow_begin(spacing, 1);
+ }
+
+ public void singlerow_end() {
+ table_end();
+ println("</td></tr>");
+ }
+
+ public void table_begin() {
+ // println("<center><table align=\"center\">");
+ table_begin(10);
+ }
+
+ public void table_begin(int spacing) {
+ println("<div " + att("class", "properties") + " > "
+ + "<center><table align=\"left\" "
+ + att("cellspacing", spacing + "%") + ">");
+ }
+
+ public void table_end() {
+ println("</table></center></div>");
+ }
+
+ public void simplelineoftext(String text, String colour) { // +
+
// att("colspan",""+span)
+ println("<tr><td " + " >\n"
+ + tag("tr", tag("td", tag("p",
colouredtext(text, colour))))
+ + "</td></tr>");
+ }
+
+ public void simplelineoftext(String span, String text, String colour)
{ //
+ println("<tr><td " + att("colspan", "" + span) + " >\n"
+ + tag("tr", tag("td", tag("p",
colouredtext(text, colour))))
+ + "</td></tr>");
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtilStringBuffer.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtilStringBuffer.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/HTMLUtilStringBuffer.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,379 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.io.IOException;
+
+public class HTMLUtilStringBuffer {
+ private int colspan = 3;
+ private StringBuffer sb;
+
+ public HTMLUtilStringBuffer(StringBuffer sb) {
+ this.sb = sb;
+ }
+
+ public void println(String s) {
+ sb.append(s);
+ }
+
+ public String getContent() {
+ return sb.toString();
+ }
+
+ public static String tag(String name, String attr, String body) {
+ return "<" + name + attr + ">" + body + "</" + name + ">\n";
+ }
+
+ public static String tag(String name, String body) {
+ return "<" + name + ">" + body + "</" + name + ">\n";
+ }
+
+ public static String atag(String name, String attr) {
+ return "<" + name + attr + "/>\n";
+ }
+
+ public static String tag(String name) {
+ return "<" + name + "/>\n";
+ }
+
+ public static String btag(String name, String body, String... atts) {
+ String ret = "<" + name + " ";
+ if (atts != null && atts.length > 0) {
+ for (String s : atts)
+ ret += s + " ";
+ }
+ return ret + ">" + body + "</" + name + ">\n";
+ }
+
+ public static String att(String attr, String val) {
+ if (val == null)
+ return "";
+ else
+ return " " + attr + " = \"" + val + "\" ";
+ }
+
+ public static String table(boolean b, String body) {
+ return btag("table", body, att("center", (b ? "center" :
null)));
+ }
+
+ public static String div(String cls, String id, String align, String
style,
+ String body) {
+ return btag("div", body, att("class", cls), att("id", id),
att("align",
+ align), att("style", style));
+ }
+
+ public static String form(String action, String name, String method,
+ String onsubmit, String body) {
+ return btag("form", body, att("action", action), att("name",
name),
+ att("method", method), att("onsubmit",
onsubmit));
+ }
+
+ public static String p(String cls, String body) {
+ return btag("p", body, att("class", cls));
+ }
+
+ public static String input(String type, String name, String value,
+ String onClick, String body) {
+ return btag("input", body, att("type", type), att("name",
name), att(
+ "value", value), att("onClick", onClick));
+ }
+
+ public static String radio_chk(String type, String name, String value,
+ String onClick, String body) {
+ return btag("input", body, att("type", type), att("name",
name), att(
+ "value", value), att("onClick", onClick),
+ att("checked", "true"));
+ }
+
+ public static String input_id(String type, String id, String value,
+ String onClick, String body) {
+ return btag("input", body, att("type", type), att("id", id),
att(
+ "value", value), att("onClick", onClick));
+ }
+
+ public static String html(String body) {
+ return btag("html", body);
+ }
+
+ public static String body(String bd) {
+ return btag("body", bd);
+ }
+
+ public static String head(String bd) {
+ return btag("head", bd);
+ }
+
+ public static String title(String bd) {
+ return btag("title", bd);
+ }
+
+ public static String ul(String bd) {
+ return btag("ul", bd);
+ }
+
+ public static String li(String bd) {
+ return btag("li", bd);
+ }
+
+ public static String h1(String bd) {
+ return btag("h1", bd);
+ }
+
+ public static String a(String href, String bd) {
+ return btag("a", bd, att("href", href));
+ }
+
+ public static String br(String body) {
+ return btag("br", body);
+ }
+
+ public static String tr(String body) {
+ return btag("tr", body);
+ }
+
+ public static String td(String body) {
+ return btag("td", body);
+ }
+
+ public static String td_col(String body) {
+ return btag("td", body, att("colspan", "2"));
+ }
+
+ public static String span(String cls, String body) {
+ return btag("span", body, att("class", cls));
+ }
+
+ public static String colouredtext(String text, String colour) {
+ return tag("font", att("color", colour), text);
+ }
+
+ public static String greenasterisk() {
+ return "<span class=\"greenasterisk\" >*</span>";
+ }
+
+ private static final String doctype = "<!DOCTYPE HTML PUBLIC
\"-//W3C//DTD HTML 4.01"
+ + " Transitional//EN\"
\"http://www.w3.org/TR/html4/loose.dtd\"> ";
+ private static final String cssFile = "default.css";
+ private static final String onClickAttribute = "
onclick=\"checkIt(this);\" ";
+ private static final String nbsp = " ";
+ private static final String checkedAttribute = " checked =\"true\" ";
//
+ private static final String blockedAttribute = "
style=\"display:block;\" ";
+ private static final String unblockedAttribute = "
style=\"display:none;\" ";
+
+ private static String times(int i) {
+ String ret = "";
+ for (int j = 0; j < i; j++)
+ ret += nbsp;
+ return ret;
+ }
+
+ private String getCSS() {
+ String css = "<link rel=\"stylesheet\" type=\"text/css\"
href=\""
+ + cssFile + "\"/>";
+ return css;
+ }
+
+ private String getScript() // FIXME Vl_ stuff
+ {
+ return "<script src=\"Service_Admin.js\">"
+ + "</script>\n"
+ + "<script src=\"wz_tooltip.js\">"
+ + "</script>\n"
+ + "<script src=\"Service_Admin.js\">"
+ + "</script>\n"
+ + "<script type=\"text/javascript\">\n"
+ + "function checkIt(el) {\n"
+ // el = clicked element
+ // el.value = value attribute of clicked
element el
+ // el.name = name attribute of clicked
element el
+ // if the clicked element's value is the same
+ // as the hidden tag's (whose id=Vl_ + name
clicked elt)
+ // default value then
+ // disable all elements whose id is the same
as the
+ // clicked element's name
+ // +
+ // "document.write(el.value
+\"\\n\"+document.getElementById(\"Vl_\"+el.name).value+\"\\n\"+document.getElementById(el.name).style.display)\n"
+ + "if (el.value == "
+ +
"document.getElementById(\"Vl_\"+el.name).value) {\n"
+ +
"document.getElementById(el.name).style.display = "
+ + "\"block\";\n" + "}\n" + "else {\n"
+ +
"document.getElementById(el.name).style.display ="
+ + " \"none\";\n" + "}\n" + "}\n" +
"</script>\n";
+ }
+
+ public void preamble() throws IOException {
+ println(getScript());
+ println("<div class=\"main\">");
+ }
+
+ public void postscript() throws IOException {
+ println("</div>");
+ }
+
+ // Specification:
+ // for each grouped radio elt
+ // there exists a hidden tag
+ // whose
+ // id = Vl_+name attr of radio elt
+ // and
+ // name denotes the disabled value
+ // there exist other elements
+ // whose
+ // id = name attr of radio elt
+
+ public void radiogroup_begin(String id, String title, String yesval,
+ String noval, boolean enabled) throws IOException {
+ println(
+ // att("align","center"),
+ tag("tr", tag("td", title)
+ + // ,att("colspan",""+3)
+ times(13)
+ + tag("td", atag("input", att("type",
"hidden")
+ + att("value", yesval) +
att("id", "Vl_" + id))
+ + tag("input", att("type",
"radio") + att("name", id)
+ +
att("value", yesval) + onClickAttribute
+ + (enabled ?
checkedAttribute : ""), times(2)
+ + yesval +
nbsp)
+ + tag("input", att("type",
"radio") + att("name", id)
+ +
att("value", noval) + onClickAttribute
+ + (!enabled ?
checkedAttribute : ""), times(2)
+ + noval +
times(14)))));
+ println("<tr><td>" + "<div " + att("id", id)
+ + att("class", "inner_properties")
+ + (!enabled ? unblockedAttribute :
blockedAttribute) + " > ");// +
+ // "<div "+
+ // att("class","properties")
+ // +
+ // " >");
+ table_begin();
+ }
+
+ public void radiogroup_end() {
+ table_end();
+
+ println("</div></td></tr>");
+ }
+
+ private void generictextbox(String type, String key, String title,
+ String val) throws IOException {
+
+ final int size = 30;
+ println(tag("tr", tag("td", att("colspan", "" + colspan),
title)
+ + tag("td", att("align", "left"),
atag("input", att("class",
+ "input_style")
+ + att("type", type)
+ + att("name", key)
+ + att("size", "" + size) +
att("value", val))))
+
+ );
+ }
+
+ public void textbox(String key, String title, String val)
+ throws IOException {
+ generictextbox("text", key, title, val);
+ }
+
+ public void passtextbox(String key, String title, String val)
+ throws IOException {
+ generictextbox("password", key, title, val);
+ }
+
+ // assumes keys.length = vals.length
+ public void radio(String key, String title, String[] vals)
+ throws IOException {
+ String opts = "";
+ for (int i = 0; i < vals.length; i++) {
+ opts += tag("input", att("type", "radio") +
att("name", key)
+ + att("value", vals[i]) + (i == 0 ?
checkedAttribute : ""),
+ times(2) + vals[i] + nbsp);
+ }
+ println(tag("tr", tag("td", att("colspan", "" + colspan),
title)
+ + tag("td", opts)));
+ }
+
+ public void dropdown(String key, String title, String[] vals) {
+ String opts = "";
+ for (int i = 0; i < vals.length; i++)
+ opts += tag("option", att("value", vals[i]), vals[i]);
+ println(tag("tr", tag("td", att("colspan", "" + colspan),
title)
+ + tag("td", att("align", "left"),
tag("select",
+ att("name", key), opts))));
+ }
+
+ public void form_begin(String key, String val, String url, int
spacing)
+ throws IOException {
+ println("<div "
+ + att("class", "properties")
+ + " > "
+ +
+ // "<center>" +
+ "<form action=\"" + url + "\"
method=\"POST\">\n"
+ + "<input type=\"hidden\" name=\"" + key +
"\" value=\"" + val
+ + "\">\n" + "<table align=\"center\" "
+ + att("cellspacing", spacing + "%") + " >");
+ }
+
+ public void form_begin(String key, String val, String url)
+ throws IOException {
+ form_begin(key, val, url, 10);
+ }
+
+ public void form_end() throws IOException {
+ println(tag("tr", tag("td", nbsp)
+ + tag("td", att("align", "right")
+ + att("colspan", "" +
colspan), atag("input", att(
+ "type", "submit")
+ + att("name", "submit") +
att("value", "Submit"))))
+ + "</table><p/>\n" + "</form>" +
+ // "</center>"+
+ "</div>");
+ }
+
+ public void singlerow_begin(int spacing, int span) {
+
+ println("<tr><td " + att("colspan", "" + span) + " >");
+ table_begin(spacing);
+ }
+
+ public void singlerow_begin(int spacing) {
+ singlerow_begin(spacing, 1);
+ }
+
+ public void singlerow_end() {
+ table_end();
+ println("</td></tr>");
+ }
+
+ public void table_begin() {
+ // println("<center><table align=\"center\">");
+ table_begin(10);
+ }
+
+ public void table_begin(int spacing) {
+ println("<div " + att("class", "properties") + " > "
+ + "<center><table align=\"left\" "
+ + att("cellspacing", spacing + "%") + ">");
+ }
+
+ public void table_end() {
+ println("</table></center></div>");
+ }
+
+ public void lineoftext(String text, String colour, int fill) {
+ singlerow_begin(1, 2);
+ println(tag("tr", tag("td", colouredtext(text + times(fill),
colour))));
+ singlerow_end();
+ }
+
+ public void simplelineoftext(String text, String colour) { // +
+ // att("colspan",""+span)
+ println("<tr><td " + " >\n"
+ + tag("tr", tag("td", tag("p",
colouredtext(text, colour))))
+ + "</td></tr>");
+ }
+
+ public void simplelineoftext(String span, String text, String colour)
{ //
+ println("<tr><td " + att("colspan", "" + span) + " >\n"
+ + tag("tr", tag("td", tag("p",
colouredtext(text, colour))))
+ + "</td></tr>");
+ }
+
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/NSContext.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/NSContext.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/NSContext.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,32 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.util.HashMap;
+import javax.xml.namespace.NamespaceContext;
+import javax.xml.*;
+import java.util.Iterator;
+
+public class NSContext extends HashMap<String, String> implements
+ NamespaceContext {
+ // private myurl = "";
+ public NSContext() {
+ put("xml", XMLConstants.XML_NS_URI);
+ }
+
+ public String getNamespaceURI(String prefix) {
+ if (prefix == null)
+ throw new NullPointerException("Null prefix");
+ String s = get(prefix);
+ return (s == null) ? XMLConstants.NULL_NS_URI : s;
+ }
+
+ // This method isn't necessary for XPath processing.
+ public String getPrefix(String uri) {
+ throw new UnsupportedOperationException();
+ }
+
+ // This method isn't necessary for XPath processing either.
+ //
+ public Iterator getPrefixes(String uri) {
+ throw new UnsupportedOperationException();
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/StringOutputStream.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/StringOutputStream.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/StringOutputStream.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,47 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.io.OutputStream;
+import java.io.Serializable;
+
+public class StringOutputStream extends OutputStream implements Serializable
{
+ protected StringBuffer buf = null;
+
+ public StringOutputStream() {
+ super();
+ buf = new StringBuffer();
+ }
+
+ public String toString() {
+ return buf.toString();
+ }
+
+ public void close() {
+ buf = null;
+ }
+
+ public void write(byte[] bytes) {
+ char[] carr = new char[bytes.length];
+ for (int i = 0; i < bytes.length; i++)
+ carr[i] = (char) bytes[i];
+ buf.append(carr);
+ }
+
+ public void write(byte[] b, int off, int len) {
+ if ((off < 0) || (len < 0) || (off + len) > b.length) {
+ throw new IndexOutOfBoundsException("Out of bounds");
+ }
+ byte[] bytes = new byte[len];
+ for (int i = 0; i < len; i++) {
+ bytes[i] = b[off];
+ off++;
+ }
+ char[] carr = new char[bytes.length];
+ for (int i = 0; i < bytes.length; i++)
+ carr[i] = (char) bytes[i];
+ buf.append(carr);
+ }
+
+ public void write(int b) {
+ buf.append((char) b);
+ }
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/Tuple.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/Tuple.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/Tuple.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,19 @@
+package org.perfsonar.webadmin.base2.util;
+
+public class Tuple<A, B> {
+ A a;
+ B b;
+
+ public Tuple(A a, B b) {
+ this.a = a;
+ this.b = b;
+ }
+
+ public A first() {
+ return a;
+ }
+
+ public B second() {
+ return b;
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLReader.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLReader.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLReader.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,43 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.net.MalformedURLException;
+import java.util.List;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Unmarshaller;
+
+import org.apache.log4j.Logger;
+import org.perfsonar.webadmin.base2.waschema.v20090201.WebAdminInterface;
+import org.xml.sax.InputSource;
+
+public class WAXMLReader {
+
+ private final static Logger logger =
Logger.getLogger(WAXMLReader.class);
+
+ private final static String CLASS_NAME =
+ // FIXME: Should read this from JAXB xml file
+ "org.perfsonar.webadmin.base2.waschema.v20090201"; //
.WebAdminInterface";
+
+ @SuppressWarnings({ "deprecation", "unchecked" })
+ public static Tuple<WebAdminInterface, JAXBContext> parseFile(
+ String fileName) throws FileNotFoundException,
+ MalformedURLException, JAXBException {
+ File f = new File(fileName);
+ InputSource isource = new InputSource(new FileInputStream(f));
+ isource.setSystemId(f.toURL().toString());
+ JAXBContext context = JAXBContext.newInstance(CLASS_NAME);
+ Unmarshaller unmarshaller = context.createUnmarshaller();
+ return new Tuple((WebAdminInterface)
unmarshaller.unmarshal(isource),
+ context);
+ }
+
+ public static void main(String[] args) throws Exception {
+ WebAdminInterface r = parseFile(args[0]).first();
+ List p = r.getPage();
+ logger.debug("Pages " + p.size() + " " +
p.get(0).getClass().getName());
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLWriter.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLWriter.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/WAXMLWriter.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,21 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.io.IOException;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
+import org.perfsonar.webadmin.base2.waschema.v20090201.WebAdminInterface;
+
+public class WAXMLWriter {
+ public static void writeToFile(JAXBContext pContext,
+ WebAdminInterface pObject, String pFileName) throws
JAXBException,
+ IOException {
+ java.io.FileOutputStream fos = new
java.io.FileOutputStream(pFileName);
+ Marshaller marshaller = pContext.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
+ marshaller.marshal(pObject, fos);
+ fos.close();
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/XMLUtil.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/XMLUtil.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util/XMLUtil.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,147 @@
+package org.perfsonar.webadmin.base2.util;
+
+import java.io.BufferedInputStream;
+import java.io.DataInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpression;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+
+import org.apache.log4j.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+public class XMLUtil {
+
+ private final static Logger logger = Logger.getLogger(XMLUtil.class);
+
+ @SuppressWarnings("deprecation")
+ public static String readFile(String fname) throws Exception {
+ java.io.File file = new File(fname);
+ String ret = "";
+ FileInputStream fis = null;
+ BufferedInputStream bis = null;
+ DataInputStream dis = null;
+
+ if (file == null)
+ throw new Exception("Invalid file name " + fname);
+ else if (!file.exists())
+ throw new Exception("File " + fname + " does not
exist ");
+ else {
+ try {
+ fis = new FileInputStream(file);
+ bis = new BufferedInputStream(fis);
+ dis = new DataInputStream(bis);
+ while (dis.available() != 0)
+ ret += dis.readLine();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (fis != null)
+ fis.close();
+ if (bis != null)
+ bis.close();
+ if (dis != null)
+ dis.close();
+ }
+ }
+ return ret;
+ }
+
+ public static Document readDocument(String uri) throws Exception {
+ DocumentBuilderFactory domFactory = DocumentBuilderFactory
+ .newInstance();
+ domFactory.setNamespaceAware(true); // never forget this!
+ DocumentBuilder builder = domFactory.newDocumentBuilder();
+ return builder.parse(uri);
+ }
+
+ public static NodeList query(NSContext ns, String q, Document doc)
+ throws ParserConfigurationException, SAXException,
IOException,
+ XPathExpressionException,
+ javax.xml.xpath.XPathFactoryConfigurationException {
+ System.setProperty("javax.xml.xpath.XPathFactory" + ":"
+ +
javax.xml.xpath.XPathFactory.DEFAULT_OBJECT_MODEL_URI,
+ "org.apache.xpath.jaxp.XPathFactoryImpl");
+ XPathFactory factory = XPathFactory
+
.newInstance(javax.xml.xpath.XPathFactory.DEFAULT_OBJECT_MODEL_URI);
+ XPath xpath = factory.newXPath();
+ if (ns != null)
+ xpath.setNamespaceContext(ns);
+ XPathExpression expr = xpath.compile(q);
+ Object result = expr.evaluate(doc, XPathConstants.NODESET);
+ NodeList nodes = (NodeList) result;
+ return nodes;
+ }
+
+ public static void writeXml(Document document, java.io.OutputStream
file)
+ throws Exception {
+ try {
+ if (document == null) {
+ logger.warn("WA -- Cann't write XML to file -
Null doc");
+ return;
+ }
+ // Prepare the DOM document for writing
+ Source source = new DOMSource(document);
+
+ // Prepare the output file
+ Result result = new StreamResult(file);
+
+ // Write the DOM document to the file
+ // Get Transformer
+ Transformer xformer = TransformerFactory.newInstance()
+ .newTransformer();
+
xformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,
+ "yes");
+ // xformer.getOutputProperties().store(System.out,"");
+ // Write to a file
+ xformer.transform(source, result);
+ } catch (TransformerConfigurationException e) {
+ logger.warn("TransformerConfigurationException: " +
e);
+ } catch (TransformerException e) {
+ logger.warn("TransformerException: " + e);
+ }
+ }
+
+ public static Tuple<String, String> parseXPath(String query) {
+ query = query.trim();
+ int i = 0;
+ String[] qtoken = query.split("\\s+");
+ query = "";
+ for (String tk : qtoken)
+ query += tk;
+ String filename = "";
+
+ if (query.length() < 8 || query.startsWith("doc(\"") ==
false) {
+ throw new RuntimeException(
+ "Did not find \"doc\" at the
beggining of query");
+ } else if ((i = query.indexOf("\"", 5)) > 3) {
+ if (i + 2 >= query.length()) {
+ throw new RuntimeException("Invalid query");
+ }
+ filename = query.substring(5, i);
+ query = query.substring(i + 2);
+ } else
+ throw new RuntimeException("Invalid query");
+ return new Tuple<String, String>(filename, query);
+ }
+};
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/admin_home_target.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/admin_home_target.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/apply_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/apply_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/apply_button_2.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/apply_button_2.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/arrow_icon.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/arrow_icon.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/arrow_icon2.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/arrow_icon2.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_1_large.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_1_large.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_1_small.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_1_small.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_2_large.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_2_large.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_2_small.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/button_2_small.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/cancel_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/cancel_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/create_resource_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/create_resource_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/delete_red_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/delete_red_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/edit_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/edit_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/edit_green_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/edit_green_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/login_panel.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/login_panel.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/logos.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/logos.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/logout_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/logout_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_collections_off_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_collections_off_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_collections_on_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_collections_on_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_users_off_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_users_off_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_users_on_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/manage_users_on_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/perfsonar_logo.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/perfsonar_logo.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_bottom.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_bottom.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_slice.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_slice.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_top.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_1_top.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_bottom.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_bottom.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_slice.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_slice.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_top.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/step_2_top.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_fail.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_fail.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_main.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_main.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_return.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_return.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_startbn.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_startbn.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_succ.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/testdepl_succ.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/top_slice.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/graphics/top_slice.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/Service_Admin.js
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/Service_Admin.js
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/Service_Admin.js
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,129 @@
+/**
+ * @author Michalis Michael,Cynet
+ */
+function setTip(el, description, color){
+ var text = '<span style=\"font-size: 12px; width:20px;\">' + description
+ '</span>';
+ var width;
+ if (el) {
+ el.style.cursor = 'pointer';
+ width = 250;
+ }
+ else {
+ width = 0;
+ }
+
+ Tip(text, BGCOLOR, color, WIDTH, width, TEXTALIGN, 'justify', ABOVE,
true);
+}
+
+function FloatPosition(){
+ var ns = (navigator.appName.indexOf("Netscape") != -1);
+ var x = screen.width;
+ var y = screen.height;
+ var button = document.getElementById("Button");
+ var reset_button = document.getElementById("ResetButton");
+ if (reset_button) {
+ var width = reset_button.parentNode.offsetWidth;
+ var offset = reset_button.parentNode.offsetLeft;
+ var leftoffset = parent
+ if (reset_button != null) {
+ if (y == 768) {
+ reset_button.style.top = 95 + '%';
+ reset_button.style.left = 83 + '%';
+ }
+ else {
+ //alert("Not 768 "+x);
+ reset_button.style.top = 95 + '%';
+ reset_button.style.left = 67 + '%';
+ }
+ }
+ if (button != null) {
+ if (y == 768) {
+ button.style.top = 95 + '%';
+ button.style.left = 91.5 + '%';
+ }
+ else {
+ button.style.top = 95 + '%';
+ button.style.left = 74 + '%';
+ }
+ }
+ }
+
+}
+
+onload = FloatPosition;
+onscroll = FloatPosition;
+onresize = FloatPosition;
+
+function checkStarFields(){
+
+ var divs = document.getElementsByTagName("div");
+ var filled = true;
+
+ for (var i = 0; i < divs.length; i++) {
+
+ var div = divs[i];
+ if (div.style.display == "block") {
+ var input_array = div.getElementsByTagName("input");
+
+ var text = document.createElement("td");
+ var ex = document.getElementById("extra");
+ if (ex != null) {
+ var p = ex.parentNode;
+ p.removeChild(ex);
+ }
+ text.id = "extra";
+ text.innerHTML = '<p style=\"color:red;\">Please fill in the
field!</p>';
+
+ for (var j = 0; j < input_array.length; j++) {
+
+ var input = input_array[j];
+
+ if (input.id == "required") {
+
+ var parent = input.parentNode.parentNode;
+ if (input.value == null || input.value == "" ||
input.value == " ") {
+ if
(parent.parentNode.parentNode.parentNode.style.display == "block") {
+ filled = false;
+ parent.appendChild(text);
+ return filled;
+ }
+
+ }
+
+ }
+
+ }
+ }
+
+ }
+
+ return filled;
+
+}
+
+function getDate(){
+
+ var date = document.getElementById("date");
+
+ var stampdays = new Array("Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday");
+
+ var stampmonths = new Array("January", "February", "March", "April",
"May", "June", "July", "August", "September", "October", "November",
"December");
+
+ var thedate = new Date();
+
+ date.innerHTML = stampdays[thedate.getDay()] + ", " +
stampmonths[thedate.getMonth()] + " " + thedate.getDate() + ", " +
thedate.getFullYear();
+
+}
+
+function highlight(el){
+ alert("Highlighted");
+ var links = document.getElementsByTagName("a");
+ for (var i = 0; i < links.length; i++) {
+
+ var link = links[i];
+
+ link.className
+ }
+}
+
+
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/Service_Admin.js
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/wz_tooltip.js
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/wz_tooltip.js
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/wz_tooltip.js
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,1149 @@
+/* This notice must be untouched at all times.
+
+wz_tooltip.js v. 4.12
+
+The latest version is available at
+http://www.walterzorn.com
+or http://www.devira.com
+or http://www.walterzorn.de
+
+Copyright (c) 2002-2007 Walter Zorn. All rights reserved.
+Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )
+Last modified: 13.7.2007
+
+Easy-to-use cross-browser tooltips.
+Just include the script at the beginning of the <body> section, and invoke
+Tip('Tooltip text') from within the desired HTML onmouseover eventhandlers.
+No container DIV, no onmouseouts required.
+By default, width of tooltips is automatically adapted to content.
+Is even capable of dynamically converting arbitrary HTML elements to tooltips
+by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(),
+which means you can put important, search-engine-relevant stuff into
tooltips.
+Appearance of tooltips can be individually configured
+via commands passed to Tip() or TagToTip().
+
+Tab Width: 4
+LICENSE: LGPL
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License (LGPL) as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+For more details on the GNU Lesser General Public License,
+see http://www.gnu.org/copyleft/lesser.html
+*/
+
+var config = new Object();
+
+
+//=================== GLOBAL TOOPTIP CONFIGURATION
=========================//
+var tt_Debug = true // false or true - recommended: false once
you release your page to the public
+var tt_Enabled = true // Allows to (temporarily) suppress
tooltips, e.g. by providing the user with a button that sets this global
variable to false
+var TagsToTip = true // false or true - if true, the script is
capable of converting HTML elements to tooltips
+
+// For each of the following config variables there exists a command, which
is
+// just the variablename in uppercase, to be passed to Tip() or TagToTip() to
+// configure tooltips individually. Individual commands override global
+// configuration. Order of commands is arbitrary.
+// Example: onmouseover="Tip('Tooltip text', LEFT, true, BGCOLOR, '#FF9900',
FADEIN, 400)"
+
+config. Above = false // false or true - tooltip
above mousepointer?
+config. BgColor = '#E4E7FF' // Background color
+config. BgImg = '' // Path to background image,
none if empty string ''
+config. BorderColor = '#002299'
+config. BorderStyle = 'solid' // Any permitted CSS value, but I
recommend 'solid', 'dotted' or 'dashed'
+config. BorderWidth = 1
+config. CenterMouse = false // false or true - center the tip
horizontally below (or above) the mousepointer
+config. ClickClose = false // false or true - close
tooltip if the user clicks somewhere
+config. CloseBtn = false // false or true -
closebutton in titlebar
+config. CloseBtnColors = ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF'] //
[Background, text, hovered background, hovered text] - use empty strings ''
to inherit title colors
+config. CloseBtnText = ' X ' // Close button text (may
also be an image tag)
+config. CopyContent = true // When converting a HTML
element to a tooltip, copy only the element's content, rather than converting
the element by its own
+config. Delay = 400 // Time span in ms until
tooltip shows up
+config. Duration = 0 // Time span in ms after
which the tooltip disappears; 0 for infinite duration
+config. FadeIn = 0 // Fade-in duration in ms,
e.g. 400; 0 for no animation
+config. FadeOut = 0
+config. FadeInterval = 30 // Duration of each fade step in ms
(recommended: 30) - shorter is smoother but causes more CPU-load
+config. Fix = null // Fixated position - x- an
y-oordinates in brackets, e.g. [210, 480], or null for no fixation
+config. FollowMouse = true // false or true - tooltip
follows the mouse
+config. FontColor = '#000044'
+config. FontFace = 'Verdana,Geneva,sans-serif'
+config. FontSize = '12px' // E.g. '9pt' or '12px' -
unit is mandatory
+config. FontWeight = 'normal' // 'normal' or 'bold';
+config. Left = false // false or true - tooltip on
the left of the mouse
+config. OffsetX = 14 // Horizontal offset of
left-top corner from mousepointer
+config. OffsetY = 8 // Vertical offset
+config. Opacity = 100 // Integer between 0 and 100
- opacity of tooltip in percent
+config. Padding = 3 // Spacing between border and
content
+config. Shadow = false // false or true
+config. ShadowColor = '#C0C0C0'
+config. ShadowWidth = 5
+config. Sticky = false // Do NOT hide tooltip on
mouseout? false or true
+config. TextAlign = 'left' // 'left', 'right' or
'justify'
+config. Title = '' // Default title text applied
to all tips (no default title: empty string '')
+config. TitleAlign = 'left' // 'left' or 'right' - text
alignment inside the title bar
+config. TitleBgColor = '' // If empty string '', BorderColor
will be used
+config. TitleFontColor = '#ffffff' // Color of title text - if '',
BgColor (of tooltip body) will be used
+config. TitleFontFace = '' // If '' use FontFace (boldified)
+config. TitleFontSize = '' // If '' use FontSize
+config. Width = 0 // Tooltip width; 0 for
automatic adaption to tooltip content
+//======= END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING BELOW
==============//
+
+
+
+
+//====================== PUBLIC
============================================//
+function Tip()
+{
+ tt_Tip(arguments, null);
+}
+function TagToTip()
+{
+ if(TagsToTip)
+ {
+ var t2t = tt_GetElt(arguments[0]);
+ if(t2t)
+ tt_Tip(arguments, t2t);
+ }
+}
+
+//================== PUBLIC EXTENSION API
==================================//
+// Extension eventhandlers currently supported:
+// OnLoadConfig, OnCreateContentString, OnSubDivsCreated, OnShow,
OnMoveBefore,
+// OnMoveAfter, OnHideInit, OnHide, OnKill
+
+var tt_aElt = new Array(10), // Container DIV, outer title & body DIVs,
inner title & body TDs, closebutton SPAN, shadow DIVs, and IFRAME to cover
windowed elements in IE
+tt_aV = new Array(), // Caches and enumerates config data for currently
active tooltip
+tt_sContent, // Inner tooltip text or HTML
+tt_scrlX = 0, tt_scrlY = 0,
+tt_musX, tt_musY,
+tt_over,
+tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently displayed
tooltip
+
+function tt_Extension()
+{
+ tt_ExtCmdEnum();
+ tt_aExt[tt_aExt.length] = this;
+ return this;
+}
+function tt_SetTipPos(x, y)
+{
+ var css = tt_aElt[0].style;
+
+ tt_x = x;
+ tt_y = y;
+ css.left = x + "px";
+ css.top = y + "px";
+ if(tt_ie56)
+ {
+ var ifrm = tt_aElt[tt_aElt.length - 1];
+ if(ifrm)
+ {
+ ifrm.style.left = css.left;
+ ifrm.style.top = css.top;
+ }
+ }
+}
+function tt_Hide()
+{
+ if(tt_db && tt_iState)
+ {
+ if(tt_iState & 0x2)
+ {
+ tt_aElt[0].style.visibility = "hidden";
+ tt_ExtCallFncs(0, "Hide");
+ }
+ tt_tShow.EndTimer();
+ tt_tHide.EndTimer();
+ tt_tDurt.EndTimer();
+ tt_tFade.EndTimer();
+ if(!tt_op && !tt_ie)
+ {
+ tt_tWaitMov.EndTimer();
+ tt_bWait = false;
+ }
+ if(tt_aV[CLICKCLOSE])
+ tt_RemEvtFnc(document, "mouseup", tt_HideInit);
+ tt_AddRemOutFnc(false);
+ tt_ExtCallFncs(0, "Kill");
+ // In case of a TagToTip tooltip, hide converted DOM node and
+ // re-insert it into document
+ if(tt_t2t && !tt_aV[COPYCONTENT])
+ {
+ tt_t2t.style.display = "none";
+ tt_MovDomNode(tt_t2t, tt_aElt[6], tt_t2tDad);
+ }
+ tt_iState = 0;
+ tt_over = null;
+ tt_ResetMainDiv();
+ if(tt_aElt[tt_aElt.length - 1])
+ tt_aElt[tt_aElt.length - 1].style.display = "none";
+ }
+}
+function tt_GetElt(id)
+{
+ return(document.getElementById ? document.getElementById(id)
+ : document.all ? document.all[id]
+ : null);
+}
+function tt_GetDivW(el)
+{
+ return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0);
+}
+function tt_GetDivH(el)
+{
+ return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0);
+}
+function tt_GetScrollX()
+{
+ return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0));
+}
+function tt_GetScrollY()
+{
+ return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0));
+}
+function tt_GetClientW()
+{
+ return(document.body && (typeof(document.body.clientWidth) != tt_u) ?
document.body.clientWidth
+ : (typeof(window.innerWidth) != tt_u) ?
window.innerWidth
+ : tt_db ? (tt_db.clientWidth || 0)
+ : 0);
+}
+function tt_GetClientH()
+{
+ // Exactly this order seems to yield correct values in all major
browsers
+ return(document.body && (typeof(document.body.clientHeight) != tt_u)
? document.body.clientHeight
+ : (typeof(window.innerHeight) != tt_u) ?
window.innerHeight
+ : tt_db ? (tt_db.clientHeight || 0)
+ : 0);
+}
+function tt_GetEvtX(e)
+{
+ return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX +
tt_scrlX)) : 0);
+}
+function tt_GetEvtY(e)
+{
+ return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY +
tt_scrlY)) : 0);
+}
+function tt_AddEvtFnc(el, sEvt, PFnc)
+{
+ if(el)
+ {
+ if(el.addEventListener)
+ el.addEventListener(sEvt, PFnc, false);
+ else
+ el.attachEvent("on" + sEvt, PFnc);
+ }
+}
+function tt_RemEvtFnc(el, sEvt, PFnc)
+{
+ if(el)
+ {
+ if(el.removeEventListener)
+ el.removeEventListener(sEvt, PFnc, false);
+ else
+ el.detachEvent("on" + sEvt, PFnc);
+ }
+}
+
+//====================== PRIVATE
===========================================//
+var tt_aExt = new Array(), // Array of extension objects
+
+tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, // Browser flags
+tt_body,
+tt_flagOpa, // Opacity support: 1=IE, 2=Khtml, 3=KHTML,
4=Moz, 5=W3C
+tt_maxPosX, tt_maxPosY,
+tt_iState = 0, // Tooltip active |= 1, shown |= 2, move with
mouse |= 4
+tt_opa, // Currently applied opacity
+tt_bJmpVert, // Tip above mouse (or ABOVE tip below mouse)
+tt_t2t, tt_t2tDad, // Tag converted to tip, and its parent
element in the document
+tt_elDeHref, // The tag from which Opera has removed the
href attribute
+// Timer
+tt_tShow = new Number(0), tt_tHide = new Number(0), tt_tDurt = new Number(0),
+tt_tFade = new Number(0), tt_tWaitMov = new Number(0),
+tt_bWait = false,
+tt_u = "undefined";
+
+
+function tt_Init()
+{
+ tt_MkCmdEnum();
+ // Send old browsers instantly to hell
+ if(!tt_Browser() || !tt_MkMainDiv())
+ return;
+ tt_IsW3cBox();
+ tt_OpaSupport();
+ tt_AddEvtFnc(document, "mousemove", tt_Move);
+ // In Debug mode we search for TagToTip() calls in order to notify
+ // the user if they've forgotten to set the TagsToTip config flag
+ if(TagsToTip || tt_Debug)
+ tt_SetOnloadFnc();
+ tt_AddEvtFnc(window, "scroll",
+ function()
+ {
+ tt_scrlX = tt_GetScrollX();
+ tt_scrlY = tt_GetScrollY();
+ if(tt_iState && !(tt_aV[STICKY] && (tt_iState & 2)))
+ tt_HideInit();
+ } );
+ // Ensure the tip be hidden when the page unloads
+ tt_AddEvtFnc(window, "unload", tt_Hide);
+ tt_Hide();
+}
+// Creates command names by translating config variable names to upper case
+function tt_MkCmdEnum()
+{
+ var n = 0;
+ for(var i in config)
+ eval("window." + i.toString().toUpperCase() + " = " + n++);
+ tt_aV.length = n;
+}
+function tt_Browser()
+{
+ var n, nv, n6, w3c;
+
+ n = navigator.userAgent.toLowerCase(),
+ nv = navigator.appVersion;
+ tt_op = (document.defaultView && typeof(eval("w" + "indow" + "." +
"o" + "p" + "er" + "a")) != tt_u);
+ tt_ie = n.indexOf("msie") != -1 && document.all && !tt_op;
+ if(tt_ie)
+ {
+ var ieOld = (!document.compatMode || document.compatMode ==
"BackCompat");
+ tt_db = !ieOld ? document.documentElement : (document.body ||
null);
+ if(tt_db)
+ tt_ie56 = parseFloat(nv.substring(nv.indexOf("MSIE")
+ 5)) >= 5.5
+ && typeof
document.body.style.maxHeight == tt_u;
+ }
+ else
+ {
+ tt_db = document.documentElement || document.body ||
+ (document.getElementsByTagName ?
document.getElementsByTagName("body")[0]
+ : null);
+ if(!tt_op)
+ {
+ n6 = document.defaultView && typeof
document.defaultView.getComputedStyle != tt_u;
+ w3c = !n6 && document.getElementById;
+ }
+ }
+ tt_body = (document.getElementsByTagName ?
document.getElementsByTagName("body")[0]
+ : (document.body || null));
+ if(tt_ie || n6 || tt_op || w3c)
+ {
+ if(tt_body && tt_db)
+ {
+ if(document.attachEvent || document.addEventListener)
+ return true;
+ }
+ else
+ tt_Err("wz_tooltip.js must be included INSIDE the
body section,"
+ + " immediately after the opening
<body> tag.");
+ }
+ tt_db = null;
+ return false;
+}
+function tt_MkMainDiv()
+{
+ // Create the tooltip DIV
+ if(tt_body.insertAdjacentHTML)
+ tt_body.insertAdjacentHTML("afterBegin", tt_MkMainDivHtm());
+ else if(typeof tt_body.innerHTML != tt_u && document.createElement &&
tt_body.appendChild)
+ tt_body.appendChild(tt_MkMainDivDom());
+ // FireFox Alzheimer bug
+ if(window.tt_GetMainDivRefs && tt_GetMainDivRefs())
+ return true;
+ tt_db = null;
+ return false;
+}
+function tt_MkMainDivHtm()
+{
+ return('<div id="WzTtDiV"></div>' +
+ (tt_ie56 ? ('<iframe id="WzTtIfRm"
src="javascript:false" scrolling="no" frameborder="0"
style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"></iframe>')
+ : ''));
+}
+function tt_MkMainDivDom()
+{
+ var el = document.createElement("div");
+ if(el)
+ el.id = "WzTtDiV";
+ return el;
+}
+function tt_GetMainDivRefs()
+{
+ tt_aElt[0] = tt_GetElt("WzTtDiV");
+ if(tt_ie56 && tt_aElt[0])
+ {
+ tt_aElt[tt_aElt.length - 1] = tt_GetElt("WzTtIfRm");
+ if(!tt_aElt[tt_aElt.length - 1])
+ tt_aElt[0] = null;
+ }
+ if(tt_aElt[0])
+ {
+ var css = tt_aElt[0].style;
+
+ css.visibility = "hidden";
+ css.position = "absolute";
+ css.overflow = "hidden";
+ return true;
+ }
+ return false;
+}
+function tt_ResetMainDiv()
+{
+ var w = (window.screen && screen.width) ? screen.width : 10000;
+
+ tt_SetTipPos(-w, 0);
+ tt_aElt[0].innerHTML = "";
+ tt_aElt[0].style.width = (w - 1) + "px";
+}
+function tt_IsW3cBox()
+{
+ var css = tt_aElt[0].style;
+
+ css.padding = "10px";
+ css.width = "40px";
+ tt_bBoxOld = (tt_GetDivW(tt_aElt[0]) == 40);
+ css.padding = "0px";
+ tt_ResetMainDiv();
+}
+function tt_OpaSupport()
+{
+ var css = tt_body.style;
+
+ tt_flagOpa = (typeof(css.filter) != tt_u) ? 1
+ : (typeof(css.KhtmlOpacity) != tt_u) ? 2
+ : (typeof(css.KHTMLOpacity) != tt_u) ? 3
+ : (typeof(css.MozOpacity) != tt_u) ? 4
+ : (typeof(css.opacity) != tt_u) ? 5
+ : 0;
+}
+// Ported from http://dean.edwards.name/weblog/2006/06/again/
+// (Dean Edwards et al.)
+function tt_SetOnloadFnc()
+{
+ tt_AddEvtFnc(document, "DOMContentLoaded", tt_HideSrcTags);
+ tt_AddEvtFnc(window, "load", tt_HideSrcTags);
+ if(tt_body.attachEvent)
+ tt_body.attachEvent("onreadystatechange",
+ function() {
+ if(tt_body.readyState == "complete")
+ tt_HideSrcTags();
+ } );
+ if(/WebKit|KHTML/i.test(navigator.userAgent))
+ {
+ var t = setInterval(function() {
+
if(/loaded|complete/.test(document.readyState))
+ {
+ clearInterval(t);
+ tt_HideSrcTags();
+ }
+ }, 10);
+ }
+}
+function tt_HideSrcTags()
+{
+ if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done)
+ return;
+ window.tt_HideSrcTags.done = true;
+ if(!tt_HideSrcTagsRecurs(tt_body))
+ tt_Err("To enable the capability to convert HTML elements to
tooltips,"
+ + " you must set TagsToTip in the global
tooltip configuration"
+ + " to true.");
+}
+function tt_HideSrcTagsRecurs(dad)
+{
+ var a, ovr, asT2t;
+
+ // Walk the DOM tree for tags that have an onmouseover attribute
+ // containing a TagToTip('...') call.
+ // (.childNodes first since .children is bugous in Safari)
+ a = dad.childNodes || dad.children || null;
+ for(var i = a ? a.length : 0; i;)
+ {--i;
+ if(!tt_HideSrcTagsRecurs(a[i]))
+ return false;
+ ovr = a[i].getAttribute ? a[i].getAttribute("onmouseover")
+ : (typeof a[i].onmouseover == "function") ?
a[i].onmouseover
+ : null;
+ if(ovr)
+ {
+ asT2t =
ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/);
+ if(asT2t && asT2t.length)
+ {
+ if(!tt_HideSrcTag(asT2t[0]))
+ return false;
+ }
+ }
+ }
+ return true;
+}
+function tt_HideSrcTag(sT2t)
+{
+ var id, el;
+
+ // The ID passed to the found TagToTip() call identifies an HTML
element
+ // to be converted to a tooltip, so hide that element
+ id = sT2t.replace(/.+'([^'.]+)'.+/, "$1");
+ el = tt_GetElt(id);
+ if(el)
+ {
+ if(tt_Debug && !TagsToTip)
+ return false;
+ else
+ el.style.display = "none";
+ }
+ else
+ tt_Err("Invalid ID\n'" + id + "'\npassed to TagToTip()."
+ + " There exists no HTML element with that
ID.");
+ return true;
+}
+function tt_Tip(arg, t2t)
+{
+ if(!tt_db)
+ return;
+ if(tt_iState)
+ tt_Hide();
+ if(!tt_Enabled)
+ return;
+ tt_t2t = t2t;
+ if(!tt_ReadCmds(arg))
+ return;
+ tt_iState = 0x1 | 0x4;
+ tt_AdaptConfig1();
+ tt_MkTipContent(arg);
+ tt_MkTipSubDivs();
+ tt_FormatTip();
+ tt_bJmpVert = false;
+ tt_maxPosX = tt_GetClientW() + tt_scrlX - tt_w - 1;
+ tt_maxPosY = tt_GetClientH() + tt_scrlY - tt_h - 1;
+ tt_AdaptConfig2();
+ // We must fake the first mousemove in order to ensure the tip
+ // be immediately shown and positioned
+ tt_Move();
+ tt_ShowInit();
+}
+function tt_ReadCmds(a)
+{
+ var i;
+
+ // First load the global config values, to initialize also values
+ // for which no command has been passed
+ i = 0;
+ for(var j in config)
+ tt_aV[i++] = config[j];
+ // Then replace each cached config value for which a command has been
+ // passed (ensure the # of command args plus value args be even)
+ if(a.length & 1)
+ {
+ for(i = a.length - 1; i > 0; i -= 2)
+ tt_aV[a[i - 1]] = a[i];
+ return true;
+ }
+ tt_Err("Incorrect call of Tip() or TagToTip().\n"
+ + "Each command must be followed by a value.");
+ return false;
+}
+function tt_AdaptConfig1()
+{
+ tt_ExtCallFncs(0, "LoadConfig");
+ // Inherit unspecified title formattings from body
+ if(!tt_aV[TITLEBGCOLOR].length)
+ tt_aV[TITLEBGCOLOR] = tt_aV[BORDERCOLOR];
+ if(!tt_aV[TITLEFONTCOLOR].length)
+ tt_aV[TITLEFONTCOLOR] = tt_aV[BGCOLOR];
+ if(!tt_aV[TITLEFONTFACE].length)
+ tt_aV[TITLEFONTFACE] = tt_aV[FONTFACE];
+ if(!tt_aV[TITLEFONTSIZE].length)
+ tt_aV[TITLEFONTSIZE] = tt_aV[FONTSIZE];
+ if(tt_aV[CLOSEBTN])
+ {
+ // Use title colors for non-specified closebutton colors
+ if(!tt_aV[CLOSEBTNCOLORS])
+ tt_aV[CLOSEBTNCOLORS] = new Array("", "", "", "");
+ for(var i = 4; i;)
+ {--i;
+ if(!tt_aV[CLOSEBTNCOLORS][i].length)
+ tt_aV[CLOSEBTNCOLORS][i] = (i & 1) ?
tt_aV[TITLEFONTCOLOR] : tt_aV[TITLEBGCOLOR];
+ }
+ // Enforce titlebar be shown
+ if(!tt_aV[TITLE].length)
+ tt_aV[TITLE] = " ";
+ }
+ // Circumvents broken display of images and fade-in flicker in Geckos
< 1.8
+ if(tt_aV[OPACITY] == 100 && typeof tt_aElt[0].style.MozOpacity !=
tt_u && !Array.every)
+ tt_aV[OPACITY] = 99;
+ // Smartly shorten the delay for fade-in tooltips
+ if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100)
+ tt_aV[DELAY] = Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100);
+}
+function tt_AdaptConfig2()
+{
+ if(tt_aV[CENTERMOUSE])
+ tt_aV[OFFSETX] -= ((tt_w - (tt_aV[SHADOW] ?
tt_aV[SHADOWWIDTH] : 0)) >> 1);
+}
+// Expose content globally so extensions can modify it
+function tt_MkTipContent(a)
+{
+ if(tt_t2t)
+ {
+ if(tt_aV[COPYCONTENT])
+ tt_sContent = tt_t2t.innerHTML;
+ else
+ tt_sContent = "";
+ }
+ else
+ tt_sContent = a[0];
+ tt_ExtCallFncs(0, "CreateContentString");
+}
+function tt_MkTipSubDivs()
+{
+ var sCss =
'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;',
+ sTbTrTd = ' cellspacing=0 cellpadding=0 border=0 style="' + sCss +
'"><tbody style="' + sCss + '"><tr><td ';
+
+ tt_aElt[0].innerHTML =
+ (''
+ + (tt_aV[TITLE].length ?
+ ('<div id="WzTiTl"
style="position:relative;z-index:1;">'
+ + '<table id="WzTiTlTb"' + sTbTrTd + 'id="WzTiTlI"
style="' + sCss + '">'
+ + tt_aV[TITLE]
+ + '</td>'
+ + (tt_aV[CLOSEBTN] ?
+ ('<td align="right" style="' + sCss
+ + 'text-align:right;">'
+ + '<span id="WzClOsE"
style="padding-left:2px;padding-right:2px;'
+ + 'cursor:' + (tt_ie ? 'hand' : 'pointer')
+ + ';" onmouseover="tt_OnCloseBtnOver(1)"
onmouseout="tt_OnCloseBtnOver(0)" onclick="tt_HideInit()">'
+ + tt_aV[CLOSEBTNTEXT]
+ + '</span></td>')
+ : '')
+ + '</tr></tbody></table></div>')
+ : '')
+ + '<div id="WzBoDy" style="position:relative;z-index:0;">'
+ + '<table' + sTbTrTd + 'id="WzBoDyI" style="' + sCss + '">'
+ + tt_sContent
+ + '</td></tr></tbody></table></div>'
+ + (tt_aV[SHADOW]
+ ? ('<div id="WzTtShDwR"
style="position:absolute;overflow:hidden;"></div>'
+ + '<div id="WzTtShDwB"
style="position:relative;overflow:hidden;"></div>')
+ : '')
+ );
+ tt_GetSubDivRefs();
+ // Convert DOM node to tip
+ if(tt_t2t && !tt_aV[COPYCONTENT])
+ {
+ // Store the tag's parent element so we can restore that DOM
branch
+ // once the tooltip is hidden
+ tt_t2tDad = tt_t2t.parentNode || tt_t2t.parentElement ||
tt_t2t.offsetParent || null;
+ if(tt_t2tDad)
+ {
+ tt_MovDomNode(tt_t2t, tt_t2tDad, tt_aElt[6]);
+ tt_t2t.style.display = "block";
+ }
+ }
+ tt_ExtCallFncs(0, "SubDivsCreated");
+}
+function tt_GetSubDivRefs()
+{
+ var aId = new Array("WzTiTl", "WzTiTlTb", "WzTiTlI", "WzClOsE",
"WzBoDy", "WzBoDyI", "WzTtShDwB", "WzTtShDwR");
+
+ for(var i = aId.length; i; --i)
+ tt_aElt[i] = tt_GetElt(aId[i - 1]);
+}
+function tt_FormatTip()
+{
+ var css, w, iOffY, iOffSh;
+
+ //--------- Title DIV ----------
+ if(tt_aV[TITLE].length)
+ {
+ css = tt_aElt[1].style;
+ css.background = tt_aV[TITLEBGCOLOR];
+ css.paddingTop = (tt_aV[CLOSEBTN] ? 2 : 0) + "px";
+ css.paddingBottom = "1px";
+ css.paddingLeft = css.paddingRight = tt_aV[PADDING] + "px";
+ css = tt_aElt[3].style;
+ css.color = tt_aV[TITLEFONTCOLOR];
+ css.fontFamily = tt_aV[TITLEFONTFACE];
+ css.fontSize = tt_aV[TITLEFONTSIZE];
+ css.fontWeight = "bold";
+ css.textAlign = tt_aV[TITLEALIGN];
+ // Close button DIV
+ if(tt_aElt[4])
+ {
+ css.paddingRight = (tt_aV[PADDING] << 1) + "px";
+ css = tt_aElt[4].style;
+ css.background = tt_aV[CLOSEBTNCOLORS][0];
+ css.color = tt_aV[CLOSEBTNCOLORS][1];
+ css.fontFamily = tt_aV[TITLEFONTFACE];
+ css.fontSize = tt_aV[TITLEFONTSIZE];
+ css.fontWeight = "bold";
+ }
+ if(tt_aV[WIDTH] > 0)
+ tt_w = tt_aV[WIDTH] + ((tt_aV[PADDING] +
tt_aV[BORDERWIDTH]) << 1);
+ else
+ {
+ tt_w = tt_GetDivW(tt_aElt[3]) +
tt_GetDivW(tt_aElt[4]);
+ // Some spacing between title DIV and closebutton
+ if(tt_aElt[4])
+ tt_w += tt_aV[PADDING];
+ }
+ // Ensure the top border of the body DIV be covered by the
title DIV
+ iOffY = -tt_aV[BORDERWIDTH];
+ }
+ else
+ {
+ tt_w = 0;
+ iOffY = 0;
+ }
+
+ //-------- Body DIV ------------
+ css = tt_aElt[5].style;
+ css.top = iOffY + "px";
+ if(tt_aV[BORDERWIDTH])
+ {
+ css.borderColor = tt_aV[BORDERCOLOR];
+ css.borderStyle = tt_aV[BORDERSTYLE];
+ css.borderWidth = tt_aV[BORDERWIDTH] + "px";
+ }
+ if(tt_aV[BGCOLOR].length)
+ css.background = tt_aV[BGCOLOR];
+ if(tt_aV[BGIMG].length)
+ css.backgroundImage = "url(" + tt_aV[BGIMG] + ")";
+ css.padding = tt_aV[PADDING] + "px";
+ css.textAlign = tt_aV[TEXTALIGN];
+ // TD inside body DIV
+ css = tt_aElt[6].style;
+ css.color = tt_aV[FONTCOLOR];
+ css.fontFamily = tt_aV[FONTFACE];
+ css.fontSize = tt_aV[FONTSIZE];
+ css.fontWeight = tt_aV[FONTWEIGHT];
+ css.background = "";
+ css.textAlign = tt_aV[TEXTALIGN];
+ if(tt_aV[WIDTH] > 0)
+ w = tt_aV[WIDTH] + ((tt_aV[PADDING] + tt_aV[BORDERWIDTH]) <<
1);
+ else
+ // We measure the width of the body's inner TD, because some
browsers
+ // expand the width of the container and outer body DIV to
100%
+ w = tt_GetDivW(tt_aElt[6]) + ((tt_aV[PADDING] +
tt_aV[BORDERWIDTH]) << 1);
+ if(w > tt_w)
+ tt_w = w;
+
+ //--------- Shadow DIVs ------------
+ if(tt_aV[SHADOW])
+ {
+ tt_w += tt_aV[SHADOWWIDTH];
+ iOffSh = Math.floor((tt_aV[SHADOWWIDTH] * 4) / 3);
+ // Bottom shadow
+ css = tt_aElt[7].style;
+ css.top = iOffY + "px";
+ css.left = iOffSh + "px";
+ css.width = (tt_w - iOffSh - tt_aV[SHADOWWIDTH]) + "px";
+ css.height = tt_aV[SHADOWWIDTH] + "px";
+ css.background = tt_aV[SHADOWCOLOR];
+ // Right shadow
+ css = tt_aElt[8].style;
+ css.top = iOffSh + "px";
+ css.left = (tt_w - tt_aV[SHADOWWIDTH]) + "px";
+ css.width = tt_aV[SHADOWWIDTH] + "px";
+ css.background = tt_aV[SHADOWCOLOR];
+ }
+ else
+ iOffSh = 0;
+
+ //-------- Container DIV -------
+ tt_SetTipOpa(tt_aV[FADEIN] ? 0 : tt_aV[OPACITY]);
+ tt_FixSize(iOffY, iOffSh);
+}
+// Fixate the size so it can't dynamically change while the tooltip is
moving.
+function tt_FixSize(iOffY, iOffSh)
+{
+ var wIn, wOut, i;
+
+ tt_aElt[0].style.width = tt_w + "px";
+ tt_aElt[0].style.pixelWidth = tt_w;
+ wOut = tt_w - ((tt_aV[SHADOW]) ? tt_aV[SHADOWWIDTH] : 0);
+ // Body
+ wIn = wOut;
+ if(!tt_bBoxOld)
+ wIn -= ((tt_aV[PADDING] + tt_aV[BORDERWIDTH]) << 1);
+ tt_aElt[5].style.width = wIn + "px";
+ // Title
+ if(tt_aElt[1])
+ {
+ wIn = wOut - (tt_aV[PADDING] << 1);
+ if(!tt_bBoxOld)
+ wOut = wIn;
+ tt_aElt[1].style.width = wOut + "px";
+ tt_aElt[2].style.width = wIn + "px";
+ }
+ tt_h = tt_GetDivH(tt_aElt[0]) + iOffY;
+ // Right shadow
+ if(tt_aElt[8])
+ tt_aElt[8].style.height = (tt_h - iOffSh) + "px";
+ i = tt_aElt.length - 1;
+ if(tt_aElt[i])
+ {
+ tt_aElt[i].style.width = tt_w + "px";
+ tt_aElt[i].style.height = tt_h + "px";
+ }
+}
+function tt_DeAlt(el)
+{
+ var aKid;
+
+ if(el.alt)
+ el.alt = "";
+ if(el.title)
+ el.title = "";
+ aKid = el.childNodes || el.children || null;
+ if(aKid)
+ {
+ for(var i = aKid.length; i;)
+ tt_DeAlt(aKid[--i]);
+ }
+}
+// This hack removes the annoying native tooltips over links in Opera
+function tt_OpDeHref(el)
+{
+ if(!tt_op)
+ return;
+ if(tt_elDeHref)
+ tt_OpReHref();
+ while(el)
+ {
+ if(el.hasAttribute("href"))
+ {
+ el.t_href = el.getAttribute("href");
+ el.t_stats = window.status;
+ el.removeAttribute("href");
+ el.style.cursor = "hand";
+ tt_AddEvtFnc(el, "mousedown", tt_OpReHref);
+ window.status = el.t_href;
+ tt_elDeHref = el;
+ break;
+ }
+ el = el.parentElement;
+ }
+}
+function tt_ShowInit()
+{
+ tt_tShow.Timer("tt_Show()", tt_aV[DELAY], true);
+ if(tt_aV[CLICKCLOSE])
+ tt_AddEvtFnc(document, "mouseup", tt_HideInit);
+}
+function tt_OverInit(e)
+{
+ tt_over = e.target || e.srcElement;
+ tt_DeAlt(tt_over);
+ tt_OpDeHref(tt_over);
+ tt_AddRemOutFnc(true);
+}
+function tt_Show()
+{
+ var css = tt_aElt[0].style;
+
+ // Override the z-index of the topmost wz_dragdrop.js D&D item
+ css.zIndex = Math.max((window.dd && dd.z) ? (dd.z + 2) : 0, 1010);
+ if(tt_aV[STICKY] || !tt_aV[FOLLOWMOUSE])
+ tt_iState &= ~0x4;
+ if(tt_aV[DURATION] > 0)
+ tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true);
+ tt_ExtCallFncs(0, "Show")
+ css.visibility = "visible";
+ tt_iState |= 0x2;
+ if(tt_aV[FADEIN])
+ tt_Fade(0, 0, tt_aV[OPACITY], Math.round(tt_aV[FADEIN] /
tt_aV[FADEINTERVAL]));
+ tt_ShowIfrm();
+}
+function tt_ShowIfrm()
+{
+ if(tt_ie56)
+ {
+ var ifrm = tt_aElt[tt_aElt.length - 1];
+ if(ifrm)
+ {
+ var css = ifrm.style;
+ css.zIndex = tt_aElt[0].style.zIndex - 1;
+ css.display = "block";
+ }
+ }
+}
+function tt_Move(e)
+{
+ e = window.event || e;
+ if(e)
+ {
+ tt_musX = tt_GetEvtX(e);
+ tt_musY = tt_GetEvtY(e);
+ }
+ if(tt_iState)
+ {
+ if(!tt_over && e)
+ tt_OverInit(e);
+ if(tt_iState & 0x4)
+ {
+ // Protect some browsers against jam of mousemove
events
+ if(!tt_op && !tt_ie)
+ {
+ if(tt_bWait)
+ return;
+ tt_bWait = true;
+ tt_tWaitMov.Timer("tt_bWait = false;", 1,
true);
+ }
+ if(tt_aV[FIX])
+ {
+ tt_iState &= ~0x4;
+ tt_SetTipPos(tt_aV[FIX][0], tt_aV[FIX][1]);
+ }
+ else if(!tt_ExtCallFncs(e, "MoveBefore"))
+ tt_SetTipPos(tt_PosX(), tt_PosY());
+ tt_ExtCallFncs([tt_musX, tt_musY], "MoveAfter")
+ }
+ }
+}
+function tt_PosX()
+{
+ var x;
+
+ x = tt_musX;
+ if(tt_aV[LEFT])
+ x -= tt_w + tt_aV[OFFSETX] - (tt_aV[SHADOW] ?
tt_aV[SHADOWWIDTH] : 0);
+ else
+ x += tt_aV[OFFSETX];
+ // Prevent tip from extending past right/left clientarea boundary
+ if(x > tt_maxPosX)
+ x = tt_maxPosX;
+ return((x < tt_scrlX) ? tt_scrlX : x);
+}
+function tt_PosY()
+{
+ var y;
+
+ // Apply some hysteresis after the tip has snapped to the other side
of the
+ // mouse. In case of insufficient space above and below the mouse, we
place
+ // the tip below.
+ if(tt_aV[ABOVE] && (!tt_bJmpVert || tt_CalcPosYAbove() >= tt_scrlY +
16))
+ y = tt_DoPosYAbove();
+ else if(!tt_aV[ABOVE] && tt_bJmpVert && tt_CalcPosYBelow() >
tt_maxPosY - 16)
+ y = tt_DoPosYAbove();
+ else
+ y = tt_DoPosYBelow();
+ // Snap to other side of mouse if tip would extend past window
boundary
+ if(y > tt_maxPosY)
+ y = tt_DoPosYAbove();
+ if(y < tt_scrlY)
+ y = tt_DoPosYBelow();
+ return y;
+}
+function tt_DoPosYBelow()
+{
+ tt_bJmpVert = tt_aV[ABOVE];
+ return tt_CalcPosYBelow();
+}
+function tt_DoPosYAbove()
+{
+ tt_bJmpVert = !tt_aV[ABOVE];
+ return tt_CalcPosYAbove();
+}
+function tt_CalcPosYBelow()
+{
+ return(tt_musY + tt_aV[OFFSETY]);
+}
+function tt_CalcPosYAbove()
+{
+ var dy = tt_aV[OFFSETY] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);
+ if(tt_aV[OFFSETY] > 0 && dy <= 0)
+ dy = 1;
+ return(tt_musY - tt_h - dy);
+}
+function tt_OnOut()
+{
+ tt_AddRemOutFnc(false);
+ if(!(tt_aV[STICKY] && (tt_iState & 0x2)))
+ tt_HideInit();
+}
+function tt_HideInit()
+{
+ tt_ExtCallFncs(0, "HideInit");
+ tt_iState &= ~0x4;
+ if(tt_flagOpa && tt_aV[FADEOUT])
+ {
+ tt_tFade.EndTimer();
+ if(tt_opa)
+ {
+ var n = Math.round(tt_aV[FADEOUT] /
(tt_aV[FADEINTERVAL] * (tt_aV[OPACITY] / tt_opa)));
+ tt_Fade(tt_opa, tt_opa, 0, n);
+ return;
+ }
+ }
+ tt_tHide.Timer("tt_Hide();", 1, false);
+}
+function tt_OpReHref()
+{
+ if(tt_elDeHref)
+ {
+ tt_elDeHref.setAttribute("href", tt_elDeHref.t_href);
+ tt_RemEvtFnc(tt_elDeHref, "mousedown", tt_OpReHref);
+ window.status = tt_elDeHref.t_stats;
+ tt_elDeHref = null;
+ }
+}
+function tt_Fade(a, now, z, n)
+{
+ if(n)
+ {
+ now += Math.round((z - now) / n);
+ if((z > a) ? (now >= z) : (now <= z))
+ now = z;
+ else
+ tt_tFade.Timer("tt_Fade("
+ + a + "," + now + ","
+ z + "," + (n - 1)
+ + ")",
+ tt_aV[FADEINTERVAL],
+ true);
+ }
+ now ? tt_SetTipOpa(now) : tt_Hide();
+}
+// To circumvent the opacity nesting flaws of IE, we set the opacity
+// for each sub-DIV separately, rather than for the container DIV.
+function tt_SetTipOpa(opa)
+{
+ tt_SetOpa(tt_aElt[5].style, opa);
+ if(tt_aElt[1])
+ tt_SetOpa(tt_aElt[1].style, opa);
+ if(tt_aV[SHADOW])
+ {
+ opa = Math.round(opa * 0.8);
+ tt_SetOpa(tt_aElt[7].style, opa);
+ tt_SetOpa(tt_aElt[8].style, opa);
+ }
+}
+function tt_OnCloseBtnOver(iOver)
+{
+ var css = tt_aElt[4].style;
+
+ iOver <<= 1;
+ css.background = tt_aV[CLOSEBTNCOLORS][iOver];
+ css.color = tt_aV[CLOSEBTNCOLORS][iOver + 1];
+}
+function tt_Int(x)
+{
+ var y;
+
+ return(isNaN(y = parseInt(x)) ? 0 : y);
+}
+// Adds or removes the document.mousemove or HoveredElem.mouseout handler
+// conveniently. Keeps track of those handlers to prevent them from being
+// set or removed redundantly.
+function tt_AddRemOutFnc(bAdd)
+{
+ var PSet = bAdd ? tt_AddEvtFnc : tt_RemEvtFnc;
+
+ if(bAdd != tt_AddRemOutFnc.bOn)
+ {
+ PSet(tt_over, "mouseout", tt_OnOut);
+ tt_AddRemOutFnc.bOn = bAdd;
+ if(!bAdd)
+ tt_OpReHref();
+ }
+}
+tt_AddRemOutFnc.bOn = false;
+Number.prototype.Timer = function(s, iT, bUrge)
+{
+ if(!this.value || bUrge)
+ this.value = window.setTimeout(s, iT);
+}
+Number.prototype.EndTimer = function()
+{
+ if(this.value)
+ {
+ window.clearTimeout(this.value);
+ this.value = 0;
+ }
+}
+function tt_SetOpa(css, opa)
+{
+ tt_opa = opa;
+ if(tt_flagOpa == 1)
+ {
+ // Hack for bugs of IE:
+ // A DIV cannot be made visible in a single step if an
opacity < 100
+ // has been applied while the DIV was hidden.
+ // Moreover, in IE6, applying an opacity < 100 has no effect
if the
+ // concerned element has no layout (position, size, zoom,
...).
+ if(opa < 100)
+ {
+ var bVis = css.visibility != "hidden";
+ css.zoom = "100%";
+ if(!bVis)
+ css.visibility = "visible";
+ css.filter = "alpha(opacity=" + opa + ")";
+ if(!bVis)
+ css.visibility = "hidden";
+ }
+ else
+ css.filter = "";
+ }
+ else
+ {
+ opa /= 100.0;
+ switch(tt_flagOpa)
+ {
+ case 2:
+ css.KhtmlOpacity = opa; break;
+ case 3:
+ css.KHTMLOpacity = opa; break;
+ case 4:
+ css.MozOpacity = opa; break;
+ case 5:
+ css.opacity = opa; break;
+ }
+ }
+}
+function tt_MovDomNode(el, dadFrom, dadTo)
+{
+ if(dadFrom)
+ dadFrom.removeChild(el);
+ if(dadTo)
+ dadTo.appendChild(el);
+}
+function tt_Err(sErr)
+{
+ if(tt_Debug)
+ alert("Tooltip Script Error Message:\n\n" + sErr);
+}
+
+//=========== DEALING WITH EXTENSIONS ==============//
+function tt_ExtCmdEnum()
+{
+ var s;
+
+ // Add new command(s) to the commands enum
+ for(var i in config)
+ {
+ s = "window." + i.toString().toUpperCase();
+ if(eval("typeof(" + s + ") == tt_u"))
+ {
+ eval(s + " = " + tt_aV.length);
+ tt_aV[tt_aV.length] = null;
+ }
+ }
+}
+function tt_ExtCallFncs(arg, sFnc)
+{
+ var b = false;
+ for(var i = tt_aExt.length; i;)
+ {--i;
+ var fnc = tt_aExt[i]["On" + sFnc];
+ // Call the method the extension has defined for this event
+ if(fnc && fnc(arg))
+ b = true;
+ }
+ return b;
+}
+
+tt_Init();
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/scripts/wz_tooltip.js
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages/selfTest.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages/selfTest.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages/selfTest.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,12 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soapenv:Body>
+
+ <nmwg:message xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="message1262167219" type="EchoRequest">
+ <nmwg:metadata id="meta">
+
<nmwg:eventType>http://schemas.perfsonar.net/tools/admin/selftest/1.0</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="data" metadataIdRef="meta"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/default.css
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/default.css
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/default.css
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,114 @@
+a img {
+ border: none;
+}
+
+/* Wizard CSS */
+.top {
+ display: block;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ margin: 0% 1% 0 1%;
+ border-bottom: 1px dotted #468C46;
+ padding: 7px;
+ background: #ffffff;
+}
+
+.greenasterisk {
+ font-size: 130%;
+ color: #468C46;
+}
+
+.properties {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ padding: 10px;
+ margin: 0% 1% 0 1%;
+}
+
+.properties em {
+ display: block;
+ color: red;
+ font-size: 95%;
+}
+
+.properties p {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.properties table {
+ border-bottom: 1px dotted #468C46;
+ margin-bottom: 20px;
+}
+
+.properties td {
+ padding: 5px;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.inner_properties {
+ padding: 0px;
+ margin: 0px;
+}
+
+.inner_properties table {
+ border: none;
+ margin: 0px;
+ padding: 0px;
+}
+
+.input {
+ padding: 1em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.input_style {
+ border-color: #468C46;
+ border-style: solid;
+ border-width: 1px;
+}
+
+/*Properties Buttons CSS*/
+.floatResetButton {
+ position: fixed;
+ width: 64px;
+ height: 28px;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ text-indent: -1000em;
+ cursor: pointer;
+ background: transparent url(graphics/cancel_button.gif) no-repeat
center
+ top;
+ float: right;
+}
+
+.floatSubmitButton {
+ position: fixed;;
+ width: 53px;
+ height: 28px;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ text-indent: -1000em;
+ cursor: pointer;
+ background: transparent url(graphics/apply_button_2.gif) no-repeat
+ center top;
+ float: right;
+}
+
+.submit_button {
+ width: 53px;
+ height: 28px;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ text-indent: -1000em;
+ cursor: pointer;
+ background: transparent url(graphics/apply_button.gif) no-repeat
center
+ top;
+ float: none;
+}
\ No newline at end of file
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/default.css
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/main.css
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/main.css
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/main.css
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,342 @@
+/* standard elements */
+* {
+ margin: 0;
+ padding: 0;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+}
+
+body {
+ background-color: #C0C0C0;
+ width: 95%;
+ height: 92%;
+ padding-top: 10px;
+}
+
+div.main {
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+}
+
+a:link {
+ color: #468C46;
+ cursor: pointer;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+a:active {
+ color: #117721;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+a:visited {
+ color: #468C46;
+ cursor: auto;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+a:hover {
+ color: #468C46;
+ cursor: pointer;
+ text-decoration: underline;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.adminPanel {
+ width: 94%;
+ height: 50%;
+ float: left;
+ margin-left: 3%;
+ margin-right: 5%;
+ background-color: #ffffff;
+ margin-bottom: 2%;
+}
+
+.navtex {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ text-align: right;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 28px;
+ background-image: none;
+}
+
+.navtexheading {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ text-align: right;
+ font-style: normal;
+ font-weight: bold;
+ line-height: normal;
+}
+
+.welcometext {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ border-bottom-width: 1px;
+ border-bottom-style: dotted;
+ border-bottom-color: #468C46;
+ padding-top: 10px;
+ padding-bottom: 8px;
+ padding-right: 0px;
+ clip: rect(auto, auto, auto, auto);
+ margin-right: 0px;
+ margin-left: 2%;
+}
+
+.heading1 {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #468C46;
+ padding-top: 23px;
+ padding-bottom: 23px;
+ font-weight: bold;
+ margin-left: 2%;
+}
+
+.contenttable {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #468C46;
+ padding-top: 0px;
+ margin-left: 20px;
+ font-weight: bold;
+ background-color: #FFFFFF;
+}
+
+.configheadinglavender {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #8585C1;
+ font-weight: bold;
+ background-image: url(../graphics/arrow_icon2.gif);
+ background-repeat: no-repeat;
+ background-position: 17px top;
+ padding-left: 38px;
+}
+
+.configheadinglavender a:link {
+ color: #8585C1;
+ cursor: pointer;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheadinglavender a:active {
+ color: #117721;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+.configheadinglavender a:visited {
+ color: #8585C1;
+ cursor: auto;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheadinglavender a:hover {
+ color: #8585C1;
+ cursor: pointer;
+ text-decoration: underline;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheading {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #27752C;
+ font-weight: bold;
+ background-image: url(../graphics/arrow_icon.gif);
+ background-repeat: no-repeat;
+ background-position: 17px top;
+ padding-left: 38px;
+}
+
+.configheading a:link {
+ color: #27752C;
+ cursor: pointer;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheading a:active {
+ color: #117721;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+.configheading a:visited {
+ color: #27752C;
+ cursor: auto;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheading a:hover {
+ color: #27752C;
+ cursor: pointer;
+ text-decoration: underline;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.banner {
+ margin: 5px;
+ width: 99%;
+ height: 94px;
+ background-image: url(../graphics/top_slice.gif);
+ background-color: #FFFFFF;
+ padding: 0px;
+ clip: rect(auto, auto, auto, auto);
+ float: left;
+}
+
+#date {
+ padding-top: 5px;
+ float: right;
+ text-align: right;
+ margin-left: 79.5%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+#serviceName {
+ padding-top: 5px;
+ float: right;
+ text-align: right;
+ margin-left: 79.5%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+.mainWindow {
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 750px;
+ background-color: #ffffff;
+}
+
+.centerWindow {
+ background-color: #FFFFFF;
+ width: 82%;
+ height: 80%;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ margin-left: 0;
+ float: left;
+}
+
+.centerWindow object {
+ width: 101%;
+ height: 105%;
+ background-color: #FFFFFF;
+}
+
+/* Sidebar*/
+.sidebar {
+ width: 15%;
+ height: 71.1%;
+ padding-bottom: 12.1%;
+ padding-right: 0px;
+ float: left;
+ border-right-width: 1px;
+ border-right-style: solid;
+ border-right-color: #61AF61;
+ margin-top: 0px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ margin-left: 5px;
+}
+
+.sidebar th {
+ color: #ffffff;
+ text-align: right;
+ background-color: #61AF61;
+ width: 15%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ background-repeat: no-repeat;
+ padding-top: 10px;
+ padding-right: 8%;
+ padding-bottom: 10px;
+ padding-left: 10px;
+}
+
+.sidebar td {
+ text-align: right;
+ background-color: #ffffff;
+ padding: 10px;
+ border-bottom-width: 1px;
+ border-bottom-style: dotted;
+ border-bottom-color: #92C992;
+}
+
+.sidebar a.button {
+ color: #ffffff;
+ text-align: left;
+ background-color: #61AF61;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ background-position: 100% 50%;
+ background-image: url(../graphics/admin_home_target.gif);
+ background-repeat: no-repeat;
+}
+
+.sidebar a {
+ font-weight: normal;
+ padding-top: 0px;
+ padding-right: 0px;
+ padding-bottom: 0px;
+ padding-left: 0px;
+ margin-bottom: 0px;
+}
+
+.sidebar img {
+ float: right;
+ border: none;
+ padding-top: 0px;
+ padding-right: 0px;
+ padding-bottom: 0px;
+}
+
+.footer {
+ height: 20px;
+ text-align: right;
+ color: #61AF61;
+ background-color: #ffffff;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ border-top-width: 1px;
+ border-top-style: dotted;
+ border-top-color: #61AF61;
+ padding-top: 12px;
+ width: 100%;
+ border-right-style: none;
+ border-right-color: #FFFFFF;
+ border-left-color: #FFFFFF;
+ float: none;
+}
\ No newline at end of file
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/resources/wa/styles/main.css
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/WEB-INF/web.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/WEB-INF/web.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
+Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+ <display-name>perfsonar web admin</display-name>
+
+ <session-config>
+ <!-- Default to 5 minute session timeouts -->
+ <session-timeout>5</session-timeout>
+ </session-config>
+
+ <!-- pS Config Servlet Admin -->
+ <servlet>
+ <servlet-name>BasicConfiguration</servlet-name>
+ <servlet-class>
+
org.perfsonar.webadmin.base2.servlet.BasicConfigurationServlet
+ </servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>BasicConfiguration</servlet-name>
+ <url-pattern>
+ /config
+ </url-pattern>
+ </servlet-mapping>
+
+ <!-- SelfTest servlet -->
+ <servlet>
+ <servlet-name>SelfTestServlet</servlet-name>
+ <servlet-class>
+ org.perfsonar.webadmin.base2.servlet.SelfTestServlet
+ </servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>SelfTestServlet</servlet-name>
+ <url-pattern>
+ /selfTest
+ </url-pattern>
+ </servlet-mapping>
+
+ <welcome-file-list>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/index.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/index.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/index.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,64 @@
+<%@page
import="org.perfsonar.webadmin.base2.servlet.util.ConfigurationServletHelper"%>
+<%@page
import="org.perfsonar.webadmin.base2.config.HTMLGenerator"%>
+
+<html>
+ <head>
+ <title>perfSONAR Service Web Administration page</title>
+ <link rel="stylesheet" type="text/css" href="wa/styles/main.css"/>
+ <link rel="stylesheet" type="text/css" href="wa/styles/default.css"/>
+ <meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
+ <script src="wa/scripts/Service_Admin.js"></script>
+ </head>
+ <body>
+ <script src="wa/scripts/wz_tooltip.js"></script>
+ <%
+ HTMLGenerator htmlGenerator=new HTMLGenerator();
+ org.perfsonar.webadmin.base2.config.ObjectMap map =
ConfigurationServletHelper.objectMap(getServletContext());
+ %>
+
+ <div class="adminPanel">
+ <div class="banner">
+
<%@include
file="views/banner.jsp"%>
+ </div>
+ <div class="mainWindow">
+ <div class="sidebar">
+
<%@include
file="views/sideBar.jsp"%>
+ </div>
+ <div class="centerWindow">
+ <%
+ String pageParam =
request.getParameter("page");
+ if(map==null){
+ %>
+ <jsp:include page="views/error.jsp"/>
+
+ <%
+ }else if(pageParam != null &&
pageParam.equals("save")){
+ %>
+
+ <% if(request.getParameter("ok")!=null){ %>
+ <jsp:include
page="views/configurationSaved.jsp"/>
+ <% }else { %>
+ <jsp:include
page="views/savedFailed.jsp"/>
+ <% } %>
+
+ <%
+ }else if(pageParam != null &&
pageParam.equals("form")){
+
out.println(request.getAttribute("form"));
+ }else if(pageParam != null &&
pageParam.equals("selfTest")){
+ %>
+
<%@include
file="views/selfTest.jsp" %>
+ <%
+ }else{
+ %>
+
<%@include
file="views/welcome.jsp" %>
+ <%
+ }
+ %>
+ </div>
+ </div>
+ <div class="footer">
+ <jsp:include page="views/footer.jsp"/>
+ </div>
+ </div>
+ </body>
+</html>
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/index.jsp
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/banner.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/banner.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/banner.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,26 @@
+<%@page
import="org.perfsonar.webadmin.base2.servlet.util.ConfigurationServletHelper"%>
+<%@page
import="org.perfsonar.webadmin.base2.config.HTMLGenerator"%>
+<%
+ HTMLGenerator banner_htmlGenerator=new HTMLGenerator();
+ org.perfsonar.webadmin.base2.config.ObjectMap banner_map =
ConfigurationServletHelper.objectMap(getServletContext());
+ String
banner_serviceName=banner_htmlGenerator.getServiceName(banner_map);
+ String
banner_serviceVersion=banner_htmlGenerator.getVersion(banner_map);
+%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+<table border="0" align="left" cellpadding="0" cellspacing="0"
style="width:100%">
+ <tr>
+ <td>
+ <a href="index.jsp" target="_self">
+ <img src="wa/graphics/perfsonar_logo.gif"
alt="perfSONAR" width="192" height="94" border="0" align="left"/>
+ </a>
+ </td>
+ <td
style="text-align:right;padding-right:70px;font-weight:bold;color:#468C46;font-size:14px">
+ <%
+ out.println(banner_serviceName+" -
"+banner_serviceVersion);
+ %>
+ </td>
+ </tr>
+</table>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/configurationSaved.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/configurationSaved.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/configurationSaved.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,7 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+ <p class="heading1">
+ The configuration files have been saved.
+ </p>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/error.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/error.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/error.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,11 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+<center>
+ <h2>
+ Failed to load web admin configuration file(s). <br />
+ Please check Tomcat log files for further information. <br />
+ Restart Tomcat after saving web admin configuration files and click
+ <a href="index.jsp" target="_self"> here</a>.</h2>
+</center>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/footer.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/footer.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/footer.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,5 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+PERFormance Service-Oriented Network monitoring ARchitecture
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/savedFailed.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/savedFailed.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/savedFailed.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,7 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+<p class="heading1">
+ The configuration files have been saved.
+</p>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/selfTest.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/selfTest.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/selfTest.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,39 @@
+<%@page
import="java.util.Map"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+
+<div class="centerWindow">
+ <p class="welcometext">
+ Welcome to the perfSONAR service web administration interface
+ </p>
+ <p class="heading1">
+ Deployment test
+ </p>
+ <%
+ if(request.getParameter("ok")!=null){
+ %>
+ <div
style="padding:10px;margin:10px;border:1px solid #468C46;
background-color:#d9ecd9;display:table">
+ <span style="font-weight:
bold">TEST SUCCESS</span><br/>
+ <hr style="border: 1px solid
#468C46"/>
+ <%
+ }else{
+ %>
+ <div
style="padding:10px;margin:10px;border:1px solid #960101;
background-color:#ff8080;display:table">
+ <span style="font-weight:
bold">TEST FAILED</span><br/>
+ <hr style="border: 1px solid
#960101"/>
+ <%
+ Map<String,String>
errors=(Map<String,String>)application.getAttribute("errors");
+ if(errors!=null){
+
out.println("<table>");
+ for(String
eventType:errors.keySet()){
+
out.println("<tr><td>"+eventType+"</td><td>"+errors.get(eventType)+"</td></tr>");
+ }
+
out.println("</table>");
+ }else{
+
out.println(application.getAttribute("errorMessage"));
+ }
+ }
+ %>
+ </div>
+</div>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/sideBar.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/sideBar.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/sideBar.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,60 @@
+<%@page
import="org.perfsonar.webadmin.base2.servlet.util.ConfigurationServletHelper"%>
+<%@page
import="org.perfsonar.webadmin.base2.config.HTMLGenerator"%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+
+ <%
+ HTMLGenerator sideBar_htmlGenerator=new HTMLGenerator();
+ org.perfsonar.webadmin.base2.config.ObjectMap sideBar_map =
ConfigurationServletHelper.objectMap(getServletContext());
+ String[]
sideBar_menuBasicLinks=sideBar_htmlGenerator.getBasicLinks(sideBar_map,false);
+ String[]
sideBar_menuAdvancedLinks=sideBar_htmlGenerator.getAdvancedLinks(sideBar_map,false);
+ %>
+
+<table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <th><a href="index.jsp" class="button" target="_self">Admin
+ home </a></th>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <span class="navtexheading">
+ Basic Configuration
+ </span>
+ </p>
+ <%
+ for(String
sideBar_basicLink:sideBar_menuBasicLinks){
+ out.println(sideBar_basicLink);
+ }
+ %>
+ <span class="navtex">
+ <a href="selfTest">Test</a>
+ </span>
+ </td>
+ </tr>
+ <%
+ if (sideBar_menuAdvancedLinks.length!=0) {
+ %>
+
+ <tr>
+ <td>
+ <p>
+ <span class="navtexheading">
+ Advanced Configuration
+ </span>
+ </p>
+ <%
+ for(String
sideBar_advancedLink:sideBar_menuAdvancedLinks){
+ out.println(sideBar_advancedLink);
+ }
+ %>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+ <tr>
+ </tr>
+</table>
+<img src="wa/graphics/logos.gif" alt="perfSONAR project partners"
+ width="117" height="263" border="0" align="top" />
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/welcome.jsp
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/welcome.jsp
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/welcome.jsp
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,94 @@
+<%@page
import="org.perfsonar.webadmin.base2.servlet.util.ConfigurationServletHelper"%>
+<%@page
import="org.perfsonar.webadmin.base2.config.HTMLGenerator"%>
+<%
+ HTMLGenerator welcome_htmlGenerator=new HTMLGenerator();
+ org.perfsonar.webadmin.base2.config.ObjectMap welcome_map =
ConfigurationServletHelper.objectMap(getServletContext());
+ String[]
welcome_mainBasicLinks=welcome_htmlGenerator.getBasicLinks(welcome_map,true);
+ String[]
welcome_mainAdvancedLinks=welcome_htmlGenerator.getAdvancedLinks(welcome_map,true);
+%>
+<div class="centerWindow">
+<p class="welcometext">Welcome to the perfSONAR service web admin
+administration interface</p>
+<p class="heading1">Configuration Settings</p>
+<table width="0" border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td>
+ <table width="0" border="0" cellpadding="0" cellspacing="0"
+ background="wa/graphics/step_1_slice.gif"
class="contenttable">
+ <tr>
+ <td><img src="wa/graphics/step_1_top.gif"
width="350" height="122">
+ </td>
+ </tr>
+
+ <%
+ for (String welcome_basicLink :
welcome_mainBasicLinks) {
+ out.println(welcome_basicLink);
+ }
+ %>
+
+ <tr>
+ <td>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p> </p>
+ <p> </p>
+ <p> </p>
+ </td>
+ </tr>
+ <tr>
+ <td></td>
+ </tr>
+ <tr>
+ <td><img src="wa/graphics/step_1_bottom.gif"
width="350"
+ height="18"></td>
+ </tr>
+ </table>
+ </td>
+
+ <%
+ if (welcome_mainAdvancedLinks.length != 0) {
+ %>
+ <td>
+ <table width="0" border="0" cellpadding="0" cellspacing="0"
+ background="wa/graphics/step_2_slice.gif"
class="contenttable">
+ <tr>
+ <td><img src="wa/graphics/step_2_top.gif"
width="350" height="118">
+ </td>
+ </tr>
+ <%
+ for (String welcome_mainAdvancedLink :
welcome_mainAdvancedLinks) {
+
out.println(welcome_mainAdvancedLink);
+ }
+ %>
+
+ <tr>
+ <td><img src="wa/graphics/step_2_bottom.gif"
width="350"
+ height="18"></td>
+ </tr>
+ </table>
+ </td>
+ <%
+ }
+ %>
+ </tr>
+ <%
+ if (welcome_map.needSync()) {
+ %>
+ <tr>
+ <td align="center" colspan="3" rowspan="2">
+ <p> </p>
+ <p> </p>
+ <p><a href="/wa/index.jsp?page=save" target="_self">Save
+ Configuration to Disk</a></p>
+ </td>
+ </tr>
+ <%
+ }
+ %>
+</table>
+</div>
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/main/webapp/views/welcome.jsp
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/org/perfsonar/SelftTestResponseTest.java
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/org/perfsonar/SelftTestResponseTest.java
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/java/org/perfsonar/SelftTestResponseTest.java
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,51 @@
+package org.perfsonar;
+
+import java.io.BufferedReader;
+import java.io.DataInputStream;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.perfsonar.webadmin.base2.selftest.SelfTestMessageParser;
+
+public class SelftTestResponseTest extends TestCase {
+
+ private String getFileContent(String fileName) {
+ StringBuffer sb=new StringBuffer();
+ try {
+ FileInputStream fstream = new
FileInputStream(fileName);
+ DataInputStream in = new DataInputStream(fstream);
+ BufferedReader br = new BufferedReader(new
InputStreamReader(in));
+ String strLine;
+ while ((strLine = br.readLine()) != null) {
+ sb.append(strLine);
+ }
+ in.close();
+ } catch (Exception e) {
+ System.err.println("Error: " + e.getMessage());
+ }
+
+ return sb.toString();
+ }
+
+ public void testParsing1() {
+
+ SelfTestMessageParser selfTestMessageParser = new
SelfTestMessageParser();
+ String
fileContent=getFileContent("src/test/resources/soapResponse1.xml");
+ Map<String,String>
result=selfTestMessageParser.parseMessage(fileContent);
+
+ assertEquals(3,result.size());
+ }
+
+ public void testParsing2() {
+
+ SelfTestMessageParser selfTestMessageParser = new
SelfTestMessageParser();
+ String
fileContent=getFileContent("src/test/resources/soapResponse2.xml");
+ Map<String,String>
result=selfTestMessageParser.parseMessage(fileContent);
+
+ assertEquals(3,result.size());
+ }
+
+}
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse1.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse1.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse1.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message id="message1264063726_resp"
+ messageIdRef="message1264063726" type="EchoResponse"
xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/">
+ <nmwg:metadata id="result-code-metadata">
+
<nmwg:eventType>http://schemas.perfsonar.net/tools/admin/selftest/1.0</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="result-code-data" metadataIdRef="result-code-metadata">
+ <nmwg:metadata id="exist-db-collection-store">
+ <nmwg:eventType>error.ls.selftest.collection.lsstore</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="exist-db-connectivity">
+ <nmwg:eventType>error.ls.selftest.dbconnectivity</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:metadata id="exist-db-collection-store-control">
+
<nmwg:eventType>error.ls.selftest.collection.lsstore-control</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="exist-db-collection-store-data"
metadataIdRef="exist-db-collection-store">
+ <nmwg:datum value="collection LSStore does not exist or is not
accessible: [error.common.storage.xmldb.open]: XQuery by HTTP failed. Could
not connect to eXist via pure http, nested exception was: class
java.io.IOException : Server returned HTTP response code: 400 for URL:
http://localhost:8180/exist/rest/db/ls"/>
+ </nmwg:data>
+ <nmwg:data id="exist-db-connectivity-data"
metadataIdRef="exist-db-connectivity">
+ <nmwg:datum value="eXist DB connection not working:
[error.common.storage.xmldb.open]: XQuery by HTTP failed. Could not connect
to eXist via pure http, nested exception was: class java.io.IOException :
Server returned HTTP response code: 400 for URL:
http://localhost:8180/exist/rest/db/ls"/>
+ </nmwg:data>
+ <nmwg:data id="exist-db-collection-store-control-data"
metadataIdRef="exist-db-collection-store-control">
+ <nmwg:datum value="collection LSStore-control does not exist or is not
accessible: [error.common.storage.xmldb.open]: XQuery by HTTP failed. Could
not connect to eXist via pure http, nested exception was: class
java.io.IOException : Server returned HTTP response code: 400 for URL:
http://localhost:8180/exist/rest/db/ls"/>
+ </nmwg:data>
+ </nmwg:data>
+</nmwg:message>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse2.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse2.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-component/src/test/resources/soapResponse2.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<nmwg:message id="EchoResponse" messageIdRef="message1264066313"
+ type="EchoResponse" xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/">
+ <nmwg:metadata id="result-code-metadata">
+
<nmwg:eventType>http://schemas.perfsonar.net/tools/admin/selftest/1.0</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="result-code-data" metadataIdRef="result-code-metadata">
+ <nmwgr:datum xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/"/>
+ <nmwg:metadata id="exist-db-connectivity">
+
<nmwg:eventType>http://perfsonar.net/result/error/ls/selftest/dbconnectivity</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="exist-db-connectivity-data"
metadataIdRef="exist-db-connectivity">
+ <nmwgr:datum xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/">eXist DB
connection not working:
[http://perfsonar.net/result/http://perfsonar.net/result/internal/error]:
Cannot initialize Db access - wrong datasource or db is not
initialized</nmwgr:datum>
+ </nmwg:data>
+ <nmwg:metadata id="exist-db-collection-store-summary">
+
<nmwg:eventType>http://perfsonar.net/result/error/ls/selftest/collection/summary</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="exist-db-collection-store-summary-data"
metadataIdRef="exist-db-collection-store-summary">
+ <nmwgr:datum
xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/">collection LSStore-summary
does not exist or is not
accessible:[http://perfsonar.net/result/http://perfsonar.net/result/internal/error]:
Cannot initialize Db access - wrong datasource or db is not
initialized</nmwgr:datum>
+ </nmwg:data>
+ <nmwg:metadata id="exist-db-collection-store-control">
+
<nmwg:eventType>http://perfsonar.net/result/error/ls/selftest/collection/lsstore-control</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="exist-db-collection-store-control-data"
metadataIdRef="exist-db-collection-store-control">
+ <nmwgr:datum
xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/">collection LSStore-control
does not exist or is not
accessible:[http://perfsonar.net/result/http://perfsonar.net/result/internal/error]:
Cannot initialize Db access - wrong datasource or db is not
initialized</nmwgr:datum>
+ </nmwg:data>
+ </nmwg:data>
+</nmwg:message>
\ No newline at end of file
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/pom.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/pom.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/pom.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,265 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>perfsonar</groupId>
+ <artifactId>perfsonar-web-admin-exampleservice</artifactId>
+ <packaging>war</packaging>
+ <version>1.6</version>
+ <name>perfSONAR Web Admin</name>
+ <url>http://www.perfsonar.net/</url>
+ <description>
+ </description>
+
+ <developers>
+ <developer>
+ <id>wiku</id>
+ <name>Wiktor Procyk</name>
+
<email></email>
+ <url></url>
+ <organization>Poznan Supercomputing and Networking
Center</organization>
+
<organizationUrl>http://www.man.poznan.pl/</organizationUrl>
+ <roles>
+ <role>designer</role>
+ <role>developer</role>
+ </roles>
+ <timezone>1</timezone>
+ <properties>
+ <skype>wiktorpr</skype>
+ </properties>
+ </developer>
+ </developers>
+
+ <inceptionYear>2009</inceptionYear>
+
+ <issueManagement>
+ <system>JIRA</system>
+ <url>http://issues.geant.net/</url>
+ </issueManagement>
+
+ <scm>
+
<connection>scm:svn:http://svn.geant.net/GEANT/SA2/ps-java-services/trunk/geant2_java-sshtelnet-mp</connection>
+
<developerConnection>scm:svn:svn+ssh:///GEANT/SA2/ps-java-services/trunk/geant2_java-sshtelnet-mp</developerConnection>
+ <!-- <tag></tag> -->
+ <url></url>
+ </scm>
+
+ <organization>
+ <name>Poznan Supercomputing and Networking Center</name>
+ <url>http://www.man.poznan.pl/</url>
+ </organization>
+
+ <!--
+ <prerequisites> <maven>2.0</maven> </prerequisites>
+ <ciManagement></ciManagement> <mailingLists>
+ <mailingList></mailingList> </mailingLists>
+ <contributors></contributors> <licenses> <license></license>
+ </licenses>
+ -->
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+
+ <plugins>
+ <plugin>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>maven-jaxme-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>jaxme</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+
<artifactId>maven-resources-plugin</artifactId>
+ <version>2.4.2</version>
+ <configuration>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jspc-maven-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ <executions>
+ <execution>
+ <id>jspc</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <!--
+ <includes>
+ <include>**/service/*</include>
+ </includes>
+ -->
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <configuration>
+ <!--
+ <webResources> <resource>
+
<directory>${project.build.directory}</directory> <excludes>
+ <exclude>**/*.jsp</exclude>
</excludes>
+
<targetPath>WEB-INF</targetPath> </resource> </webResources>
+ -->
+ <webXml>target/jspweb.xml</webXml>
+
<warSourceExcludes>**/*.jsp</warSourceExcludes>
+ </configuration>
+ </plugin>
+ </plugins>
+
+ </build>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>tomcat</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>5.0.28</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>isorelax</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>jaxme2</artifactId>
+ <version>0.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>jaxmeapi</artifactId>
+ <version>0.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.jaxme</groupId>
+ <artifactId>jaxmexs</artifactId>
+ <version>0.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>msv</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>relaxngDatatype</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>serializer</artifactId>
+ <version>2.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>xmldb</groupId>
+ <artifactId>xmldb-common</artifactId>
+ <version>20030701</version>
+ </dependency>
+ <dependency>
+ <groupId>xmldb</groupId>
+ <artifactId>xmldb-xupdate</artifactId>
+ <version>20040205</version>
+ </dependency>
+ <dependency>
+ <groupId>Validation</groupId>
+ <artifactId>xsdlib</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+
+
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.9</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>1.1</version>
+ </dependency>
+
+<!-- <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>2.0.3</version>
+ </dependency>
+-->
+ </dependencies>
+
+ <repositories>
+ <repository>
+ <id>ibiblio</id>
+ <name>ibiblio repository</name>
+ <url>http://www.ibiblio.org/maven2</url>
+ </repository>
+ <repository>
+ <id>personar</id>
+ <name>personar repository</name>
+
<url>http://anonsvn.internet2.edu/svn/perfsonar/trunk/jar-repository/</url>
+ </repository>
+ </repositories>
+</project>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/configuration.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/configuration.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/configuration.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,218 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+
+<configuration xmlns="http://service.perfsonar.org/ns/config/base/0.9/">
+
+
+ <service name="xmlls">
+
+ <!--
....................................................................................
-->
+
+ <!-- Lookup Info of the LS instance -->
+
+ <lookupInformation>
+ <option name="accessPoint"
value="http://localhost:8080/perfsonar-java-xml-ls/services/LookupService"/>
+ <option name="serviceName" value="Geant3 JAVA - XML LS "/>
+ <option name="serviceType" value="LS"/>
+ </lookupInformation>
+
+ <!--
....................................................................................
-->
+
+ <!-- Message Handlers - message types and service engines -->
+
+ <messageHandler>
+
+ <!-- Echo -->
+ <message type="EchoRequest"
+
handler="org.perfsonar.base2.service.messages.GenericMessageHandler">
+ <option name="ServiceEngine"
+
value="org.perfsonar.service.lookupservice.EchoServiceEngine" />
+ <option name="authN" value="no" />
+ </message>
+
+ <!-- Register -->
+ <message type="LSRegisterRequest"
+
handler="org.perfsonar.service.lookupservice.LSRegistrationMessageHandler">
+ <option name="ServiceEngine"
+
value="org.perfsonar.service.lookupservice.LSRegisterServiceEngine"/>
+ <option name="authN" value="no" />
+ <option name="minTTL" value="10" />
+ <option name="maxTTL" value="100000" />
+ </message>
+
+ <!-- QUERY -->
+ <message type="LSQueryRequest"
+
handler="org.perfsonar.base2.service.messages.GenericMessageHandler">
+ <option name="ServiceEngine"
+
value="org.perfsonar.service.lookupservice.LSQueryServiceEngine" />
+ <option name="authN" value="no" />
+ </message>
+
+ <!-- Keepalive -->
+ <message type="LSKeepaliveRequest"
+
handler="org.perfsonar.base2.service.messages.GenericMessageHandler">
+ <option name="ServiceEngine"
+
value="org.perfsonar.service.lookupservice.LSKeepaliveServiceEngine" />
+ <option name="authN" value="no" />
+ </message>
+
+ <!-- Deregister -->
+ <message type="LSDeregisterRequest"
+
handler="org.perfsonar.base2.service.messages.GenericMessageHandler">
+ <option name="ServiceEngine"
+
value="org.perfsonar.service.lookupservice.LSDeregisterServiceEngine" />
+ <option name="authN" value="no" />
+ </message>
+
+ </messageHandler>
+
+ <!--
....................................................................................
-->
+
+ <!-- Additional auxiliary components -->
+
+ <auxiliaryComponents>
+
+ <!-- exist datasource contains optionally read-only credentials -->
+ <component name="existDataSource"
+
className="org.perfsonar.service.lookupservice.components.DataSourceComponent">
+ <option name="url"
value="xmldb:exist://localhost:8080/exist/xmlrpc/db"/>
+ <option name="username" value="lookupservice"/>
+ <option name="password" value="sonar"/>
+ <option name="usernameRO" value="guest"/>
+ <option name="passwordRO" value="guest"/>
+ </component>
+
+ <!-- provides access to ExistDb with all permissions -->
+ <component name="existAccessManager"
className="org.perfsonar.service.lookupservice.components.XMLDBComponent">
+ <option name="dataSource-ref" value="existDataSource"/>
+ </component>
+
+ <!-- provides access to ExistDb with read-only permissions -->
+ <component name="existAccessManagerRO"
className="org.perfsonar.service.lookupservice.components.XMLDBComponent">
+ <option name="dataSource-ref" value="existDataSource"/>
+ <option name="readOnly" value="true"/>
+ </component>
+
+ <!-- Lookup Service DAO -->
+ <component name="lsdao"
className="org.perfsonar.service.lookupservice.storage.exist.dao.MultipleFilesDAOImpl">
+ <option name="dbAccessManager-ref" value="existAccessManager"/>
+ </component>
+
+ <!-- Lookup Service DAO with read-only permission. It is used in
LSQueryRequest -->
+ <component name="lsdao-ro"
className="org.perfsonar.service.lookupservice.storage.exist.dao.MultipleFilesDAOImpl">
+ <option name="dbAccessManager-ref" value="existAccessManagerRO"/>
+ </component>
+
+ <!-- Summarization Service DAO -->
+ <component name="summarizationdao"
className="org.perfsonar.service.lookupservice.storage.exist.dao.SummarizationDAOImpl">
+ <option name="dbAccessManager-ref" value="existAccessManager"/>
+ </component>
+
+ <!-- contains a nr of changes in DB - is used to synchronization -->
+ <component name="modificationCounterComponent"
className="org.perfsonar.service.lookupservice.components.ModificationCounterComponent"/>
+
+ <!-- Scheduler -->
+ <component name="scheduling"
+
className="org.perfsonar.base2.service.scheduler.SchedulingComponent">
+
+ <option name="schedulerClassName"
value="org.perfsonar.base2.service.scheduler.singleThread.SingleThreadScheduler"/>
+ <option name="interval" value="60"/> <!-- sec -->
+ <actions>
+
+ <!--
+ action invokes cleanup operations on database. lsTTL -
default value of Time to live parameter.
+ After lsTTL time, if service didn't re-register, service will
be removed.
+ -->
+ <action name="LSCleanup_1"
className="org.perfsonar.service.lookupservice.schedulerActions.CleanupSchedulerAction">
+ <option name="status" value="on" />
+ <option name="interval" value="300" />
+ <option name="lsTTL" value="86400"/>
+ </action>
+
+ <!--
+ this action supports synchronization of summarized data
stored in LSStore-summary with data stored in LSStore.xml
+ nrOfModifications - nr of changes in db after which
summarization process is executed immediately
+ nrOfIterations - after this nr of iteration if there are
some changes in db - summarization process is executed
+ -->
+ <action name="LSSummarySynchronization"
className="org.perfsonar.service.lookupservice.schedulerActions.SummarySynchronizationAction">
+ <option name="status" value="on" />
+ <option name="interval" value="60" />
+ <option name="nrOfModifications" value="10"/>
+ <option name="nrOfIterations" value="4"/>
+ </action>
+
+ <action name="registration"
className="org.perfsonar.service.lookupservice.schedulerActions.GLSRegistrationAction">
+
+ <option name="status" value="on" />
+ <option name="interval" value="43200" />
+
+ <option name="registerDataSource"
+
value="org.perfsonar.service.lookupservice.registration.LSSummaryRegisterDataSource"/>
+
+ <option name="registerEventType"
+
value="http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/registration/summary/2.0"/>
+ <!--
+ <option name="registerEventType"
+
value="http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/registration/service/2.0"/>
+ -->
+ <option name="registrator"
+
value="org.perfsonar.base2.service.registration.GenericLSRegistrator"/>
+
+ <!-- define lsAddresses (lsAddress-1,lsAddress-2,..) where
this LS will be registered -->
+ <!--
+ <option name="lsAddress-1"
+
value="http://localhost:8080/perfsonar-java-xml-ls/services/LookupService"/>
+ -->
+ <!-- or define localizations of the root.hints
(lsList-1,lsList-2,...) which consists of gls addresses -->
+
+ <option name="lsList-1"
value="http://www.perfsonar.net/gls.root.hints"/>
+
+ <!-- number of registration to GLS in a single iteration -->
+ <option name="nrOfGLSRegistration" value="1"/>
+
+ </action>
+
+ </actions>
+ </component>
+
+ </auxiliaryComponents>
+
+
+ <!--
....................................................................................
-->
+
+ <!-- Protocol mappings, XML elements and their bingings -->
+
+ <protocolMappings>
+
+
+ <!-- default mapping -->
+
+
+ <!-- general mappings -->
+ <element name="{*}message"
+ mapping="org.perfsonar.base2.xml.nmwg.Message"/>
+ <element name="{*}metadata"
+ mapping="org.perfsonar.base2.xml.nmwg.Metadata"/>
+ <element name="{*}eventType"
+ mapping="org.perfsonar.base2.xml.nmwg.EventType"/>
+ <element name="{*}data"
+ mapping="org.perfsonar.base2.xml.nmwg.Data"/>
+ <element name="{*}subject"
+ mapping="org.perfsonar.base2.xml.nmwg.Subject"/>
+ <element name="{*}parameters"
+ mapping="org.perfsonar.base2.xml.nmwg.Parameters"/>
+ <element name="{*}parameter"
+ mapping="org.perfsonar.base2.xml.nmwg.Parameter"/>
+ <element name="*"
+ mapping="org.perfsonar.base2.xml.Element"/>
+ <element
name="{http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xquery/1.0/}subject"
+ mapping="org.perfsonar.base2.xml.TextElement"/>
+
+
+ </protocolMappings>
+
+
+ </service>
+
+
+</configuration>
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/configuration.xml
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/webAdminConfig.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/webAdminConfig.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes/perfsonar/conf/webAdminConfig.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<wa:interface
+ xmlns:wa="http://webadmin.perfsonar.org/base2/waschema/v20090201">
+
+ <!-- service information consists of name and version (only for
displaying purpose) and accessPoint - selfTest -->
+ <wa:serviceInformation>
+
<wa:accessPoint>http://localhost:8180/geant2-java-xml-ls/services/LookupService</wa:accessPoint>
+ <wa:serviceName>Service Name</wa:serviceName>
+ <wa:version>1.23</wa:version>
+ </wa:serviceInformation>
+
+ <!-- credential for WA -->
+ <wa:credential>
+ <wa:username>perfsonaruser</wa:username>
+ <wa:password>perfsonarpass</wa:password>
+ </wa:credential>
+
+ <wa:basiclink>
+ <wa:pageId>basic</wa:pageId> <!-- page identifier -->
+ <wa:title>Service settings</wa:title>
+ </wa:basiclink>
+
+ <wa:basiclink>
+ <wa:pageId>changePassword</wa:pageId> <!-- page identifier -->
+ <wa:title>Change WA password</wa:title>
+ </wa:basiclink>
+
+ <wa:advancedlink>
+ <wa:pageId>advanced</wa:pageId> <!-- page identifier -->
+ <wa:title>Advanced Service Settings</wa:title>
+ </wa:advancedlink>
+
+ <wa:advancedlink>
+ <wa:redirectTo>http://localhost:8080/exist</wa:redirectTo>
+ <wa:title>Exist configuration</wa:title>
+ </wa:advancedlink>
+
+ <wa:map>
+
<wa:url>http://service.perfsonar.org/ns/config/base/0.9/</wa:url>
+ <wa:ns>ns1</wa:ns>
+ </wa:map>
+
+ <wa:map>
+
<wa:url>http://webadmin.perfsonar.org/base2/waschema/v20090201</wa:url>
+ <wa:ns>webAdmin</wa:ns>
+ </wa:map>
+
+ <wa:page>
+ <wa:pageId><wa:text>changePassword</wa:text></wa:pageId>
+ <wa:title><wa:text>Change Password</wa:text></wa:title>
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/webAdminConfig.xml")//webAdmin:interface/webAdmin:credential/webAdmin:username
+ </wa:xpath>
+ </wa:default>
+
<wa:title><wa:text>username</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+ <wa:plain>
+ <wa:password>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/webAdminConfig.xml")//webAdmin:interface/webAdmin:credential/webAdmin:password
+ </wa:xpath>
+ </wa:default>
+
<wa:title><wa:text>password</wa:text></wa:title>
+ </wa:password>
+ </wa:plain>
+ </wa:page>
+
+ <wa:page>
+ <wa:pageId><wa:text>basic</wa:text></wa:pageId>
+ <wa:title><wa:text>Title of this page</wa:text></wa:title>
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:lookupInformation/ns1:option[@name="accessPoint"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Access
point</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:lookupInformation/ns1:option[@name="serviceName"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Service
name</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:lookupInformation/ns1:option[@name="serviceType"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Service
type</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:auxiliaryComponents/ns1:component[@name="existDataSource"]/ns1:option[@name="username"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Exist DB
username</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:auxiliaryComponents/ns1:component[@name="existDataSource"]/ns1:option[@name="password"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Exist DB
password</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+
+ </wa:page>
+
+
+ <wa:page>
+ <wa:pageId><wa:text>advanced</wa:text></wa:pageId>
+ <wa:title><wa:text>Title of this page</wa:text></wa:title>
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:lookupInformation/ns1:option[@name="accessPoint"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Default
title</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+
+ <wa:plain>
+ <wa:textbox>
+ <wa:default>
+ <wa:text>
+ This should be updated
in-place
+ </wa:text>
+ </wa:default>
+ <wa:title><wa:text>Another
title</wa:text></wa:title>
+ </wa:textbox>
+ </wa:plain>
+
+ <wa:plain>
+ <wa:dropdown>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:lookupInformation/ns1:option[@name="serviceName"]/@value
+ </wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Default dropdown
title</wa:text></wa:title>
+ <wa:values><wa:text>SimpleService -
Echo,val2,val3</wa:text></wa:values>
+ </wa:dropdown>
+ </wa:plain>
+
+ <wa:plain>
+ <wa:radio>
+ <wa:default>
+ <wa:xpath>
+
doc("classes/perfsonar/conf/configuration.xml")//ns1:configuration/ns1:service[@name="xmlls"]/ns1:messageHandler/ns1:message[@type="EchoRequest"]/ns1:option[@name="authN"]/@value</wa:xpath>
+ </wa:default>
+ <wa:title><wa:text>Require authorization
?</wa:text></wa:title>
+
<wa:values><wa:text>yes,no</wa:text></wa:values>
+ </wa:radio>
+ </wa:plain>
+
+ </wa:page>
+
+
+</wa:interface>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/web.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/web.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
+Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+ <display-name>perfsonar web admin</display-name>
+
+ <session-config>
+ <!-- Default to 5 minute session timeouts -->
+ <session-timeout>5</session-timeout>
+ </session-config>
+
+ <!-- pS Config Servlet Admin -->
+ <servlet>
+ <servlet-name>BasicConfiguration</servlet-name>
+ <servlet-class>
+
org.perfsonar.webadmin.base2.servlet.BasicConfigurationServlet
+ </servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>BasicConfiguration</servlet-name>
+ <url-pattern>
+ /config
+ </url-pattern>
+ </servlet-mapping>
+
+ <!-- SelfTest servlet -->
+ <servlet>
+ <servlet-name>SelfTestServlet</servlet-name>
+ <servlet-class>
+ org.perfsonar.webadmin.base2.servlet.SelfTestServlet
+ </servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>SelfTestServlet</servlet-name>
+ <url-pattern>
+ /selfTest
+ </url-pattern>
+ </servlet-mapping>
+
+ <welcome-file-list>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+
+</web-app>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/admin_home_target.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/admin_home_target.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/apply_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/apply_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/apply_button_2.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/apply_button_2.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/arrow_icon.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/arrow_icon.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/arrow_icon2.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/arrow_icon2.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_1_large.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_1_large.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_1_small.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_1_small.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_2_large.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_2_large.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_2_small.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/button_2_small.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/cancel_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/cancel_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/create_resource_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/create_resource_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/delete_red_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/delete_red_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/edit_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/edit_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/edit_green_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/edit_green_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/login_panel.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/login_panel.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/logos.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/logos.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/logout_button.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/logout_button.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_collections_off_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_collections_off_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_collections_on_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_collections_on_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_users_off_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_users_off_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_users_on_tab.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/manage_users_on_tab.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/perfsonar_logo.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/perfsonar_logo.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_bottom.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_bottom.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_slice.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_slice.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_top.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_1_top.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_bottom.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_bottom.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_slice.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_slice.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_top.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/step_2_top.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_fail.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_fail.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_main.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_main.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_return.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_return.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_startbn.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_startbn.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_succ.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/testdepl_succ.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/top_slice.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/graphics/top_slice.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/Service_Admin.js
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/Service_Admin.js
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/Service_Admin.js
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,129 @@
+/**
+ * @author Michalis Michael,Cynet
+ */
+function setTip(el, description, color){
+ var text = '<span style=\"font-size: 12px; width:20px;\">' + description
+ '</span>';
+ var width;
+ if (el) {
+ el.style.cursor = 'pointer';
+ width = 250;
+ }
+ else {
+ width = 0;
+ }
+
+ Tip(text, BGCOLOR, color, WIDTH, width, TEXTALIGN, 'justify', ABOVE,
true);
+}
+
+function FloatPosition(){
+ var ns = (navigator.appName.indexOf("Netscape") != -1);
+ var x = screen.width;
+ var y = screen.height;
+ var button = document.getElementById("Button");
+ var reset_button = document.getElementById("ResetButton");
+ if (reset_button) {
+ var width = reset_button.parentNode.offsetWidth;
+ var offset = reset_button.parentNode.offsetLeft;
+ var leftoffset = parent
+ if (reset_button != null) {
+ if (y == 768) {
+ reset_button.style.top = 95 + '%';
+ reset_button.style.left = 83 + '%';
+ }
+ else {
+ //alert("Not 768 "+x);
+ reset_button.style.top = 95 + '%';
+ reset_button.style.left = 67 + '%';
+ }
+ }
+ if (button != null) {
+ if (y == 768) {
+ button.style.top = 95 + '%';
+ button.style.left = 91.5 + '%';
+ }
+ else {
+ button.style.top = 95 + '%';
+ button.style.left = 74 + '%';
+ }
+ }
+ }
+
+}
+
+onload = FloatPosition;
+onscroll = FloatPosition;
+onresize = FloatPosition;
+
+function checkStarFields(){
+
+ var divs = document.getElementsByTagName("div");
+ var filled = true;
+
+ for (var i = 0; i < divs.length; i++) {
+
+ var div = divs[i];
+ if (div.style.display == "block") {
+ var input_array = div.getElementsByTagName("input");
+
+ var text = document.createElement("td");
+ var ex = document.getElementById("extra");
+ if (ex != null) {
+ var p = ex.parentNode;
+ p.removeChild(ex);
+ }
+ text.id = "extra";
+ text.innerHTML = '<p style=\"color:red;\">Please fill in the
field!</p>';
+
+ for (var j = 0; j < input_array.length; j++) {
+
+ var input = input_array[j];
+
+ if (input.id == "required") {
+
+ var parent = input.parentNode.parentNode;
+ if (input.value == null || input.value == "" ||
input.value == " ") {
+ if
(parent.parentNode.parentNode.parentNode.style.display == "block") {
+ filled = false;
+ parent.appendChild(text);
+ return filled;
+ }
+
+ }
+
+ }
+
+ }
+ }
+
+ }
+
+ return filled;
+
+}
+
+function getDate(){
+
+ var date = document.getElementById("date");
+
+ var stampdays = new Array("Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday");
+
+ var stampmonths = new Array("January", "February", "March", "April",
"May", "June", "July", "August", "September", "October", "November",
"December");
+
+ var thedate = new Date();
+
+ date.innerHTML = stampdays[thedate.getDay()] + ", " +
stampmonths[thedate.getMonth()] + " " + thedate.getDate() + ", " +
thedate.getFullYear();
+
+}
+
+function highlight(el){
+ alert("Highlighted");
+ var links = document.getElementsByTagName("a");
+ for (var i = 0; i < links.length; i++) {
+
+ var link = links[i];
+
+ link.className
+ }
+}
+
+
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/Service_Admin.js
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/wz_tooltip.js
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/wz_tooltip.js
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/wz_tooltip.js
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,1149 @@
+/* This notice must be untouched at all times.
+
+wz_tooltip.js v. 4.12
+
+The latest version is available at
+http://www.walterzorn.com
+or http://www.devira.com
+or http://www.walterzorn.de
+
+Copyright (c) 2002-2007 Walter Zorn. All rights reserved.
+Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )
+Last modified: 13.7.2007
+
+Easy-to-use cross-browser tooltips.
+Just include the script at the beginning of the <body> section, and invoke
+Tip('Tooltip text') from within the desired HTML onmouseover eventhandlers.
+No container DIV, no onmouseouts required.
+By default, width of tooltips is automatically adapted to content.
+Is even capable of dynamically converting arbitrary HTML elements to tooltips
+by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(),
+which means you can put important, search-engine-relevant stuff into
tooltips.
+Appearance of tooltips can be individually configured
+via commands passed to Tip() or TagToTip().
+
+Tab Width: 4
+LICENSE: LGPL
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License (LGPL) as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+For more details on the GNU Lesser General Public License,
+see http://www.gnu.org/copyleft/lesser.html
+*/
+
+var config = new Object();
+
+
+//=================== GLOBAL TOOPTIP CONFIGURATION
=========================//
+var tt_Debug = true // false or true - recommended: false once
you release your page to the public
+var tt_Enabled = true // Allows to (temporarily) suppress
tooltips, e.g. by providing the user with a button that sets this global
variable to false
+var TagsToTip = true // false or true - if true, the script is
capable of converting HTML elements to tooltips
+
+// For each of the following config variables there exists a command, which
is
+// just the variablename in uppercase, to be passed to Tip() or TagToTip() to
+// configure tooltips individually. Individual commands override global
+// configuration. Order of commands is arbitrary.
+// Example: onmouseover="Tip('Tooltip text', LEFT, true, BGCOLOR, '#FF9900',
FADEIN, 400)"
+
+config. Above = false // false or true - tooltip
above mousepointer?
+config. BgColor = '#E4E7FF' // Background color
+config. BgImg = '' // Path to background image,
none if empty string ''
+config. BorderColor = '#002299'
+config. BorderStyle = 'solid' // Any permitted CSS value, but I
recommend 'solid', 'dotted' or 'dashed'
+config. BorderWidth = 1
+config. CenterMouse = false // false or true - center the tip
horizontally below (or above) the mousepointer
+config. ClickClose = false // false or true - close
tooltip if the user clicks somewhere
+config. CloseBtn = false // false or true -
closebutton in titlebar
+config. CloseBtnColors = ['#990000', '#FFFFFF', '#DD3333', '#FFFFFF'] //
[Background, text, hovered background, hovered text] - use empty strings ''
to inherit title colors
+config. CloseBtnText = ' X ' // Close button text (may
also be an image tag)
+config. CopyContent = true // When converting a HTML
element to a tooltip, copy only the element's content, rather than converting
the element by its own
+config. Delay = 400 // Time span in ms until
tooltip shows up
+config. Duration = 0 // Time span in ms after
which the tooltip disappears; 0 for infinite duration
+config. FadeIn = 0 // Fade-in duration in ms,
e.g. 400; 0 for no animation
+config. FadeOut = 0
+config. FadeInterval = 30 // Duration of each fade step in ms
(recommended: 30) - shorter is smoother but causes more CPU-load
+config. Fix = null // Fixated position - x- an
y-oordinates in brackets, e.g. [210, 480], or null for no fixation
+config. FollowMouse = true // false or true - tooltip
follows the mouse
+config. FontColor = '#000044'
+config. FontFace = 'Verdana,Geneva,sans-serif'
+config. FontSize = '12px' // E.g. '9pt' or '12px' -
unit is mandatory
+config. FontWeight = 'normal' // 'normal' or 'bold';
+config. Left = false // false or true - tooltip on
the left of the mouse
+config. OffsetX = 14 // Horizontal offset of
left-top corner from mousepointer
+config. OffsetY = 8 // Vertical offset
+config. Opacity = 100 // Integer between 0 and 100
- opacity of tooltip in percent
+config. Padding = 3 // Spacing between border and
content
+config. Shadow = false // false or true
+config. ShadowColor = '#C0C0C0'
+config. ShadowWidth = 5
+config. Sticky = false // Do NOT hide tooltip on
mouseout? false or true
+config. TextAlign = 'left' // 'left', 'right' or
'justify'
+config. Title = '' // Default title text applied
to all tips (no default title: empty string '')
+config. TitleAlign = 'left' // 'left' or 'right' - text
alignment inside the title bar
+config. TitleBgColor = '' // If empty string '', BorderColor
will be used
+config. TitleFontColor = '#ffffff' // Color of title text - if '',
BgColor (of tooltip body) will be used
+config. TitleFontFace = '' // If '' use FontFace (boldified)
+config. TitleFontSize = '' // If '' use FontSize
+config. Width = 0 // Tooltip width; 0 for
automatic adaption to tooltip content
+//======= END OF TOOLTIP CONFIG, DO NOT CHANGE ANYTHING BELOW
==============//
+
+
+
+
+//====================== PUBLIC
============================================//
+function Tip()
+{
+ tt_Tip(arguments, null);
+}
+function TagToTip()
+{
+ if(TagsToTip)
+ {
+ var t2t = tt_GetElt(arguments[0]);
+ if(t2t)
+ tt_Tip(arguments, t2t);
+ }
+}
+
+//================== PUBLIC EXTENSION API
==================================//
+// Extension eventhandlers currently supported:
+// OnLoadConfig, OnCreateContentString, OnSubDivsCreated, OnShow,
OnMoveBefore,
+// OnMoveAfter, OnHideInit, OnHide, OnKill
+
+var tt_aElt = new Array(10), // Container DIV, outer title & body DIVs,
inner title & body TDs, closebutton SPAN, shadow DIVs, and IFRAME to cover
windowed elements in IE
+tt_aV = new Array(), // Caches and enumerates config data for currently
active tooltip
+tt_sContent, // Inner tooltip text or HTML
+tt_scrlX = 0, tt_scrlY = 0,
+tt_musX, tt_musY,
+tt_over,
+tt_x, tt_y, tt_w, tt_h; // Position, width and height of currently displayed
tooltip
+
+function tt_Extension()
+{
+ tt_ExtCmdEnum();
+ tt_aExt[tt_aExt.length] = this;
+ return this;
+}
+function tt_SetTipPos(x, y)
+{
+ var css = tt_aElt[0].style;
+
+ tt_x = x;
+ tt_y = y;
+ css.left = x + "px";
+ css.top = y + "px";
+ if(tt_ie56)
+ {
+ var ifrm = tt_aElt[tt_aElt.length - 1];
+ if(ifrm)
+ {
+ ifrm.style.left = css.left;
+ ifrm.style.top = css.top;
+ }
+ }
+}
+function tt_Hide()
+{
+ if(tt_db && tt_iState)
+ {
+ if(tt_iState & 0x2)
+ {
+ tt_aElt[0].style.visibility = "hidden";
+ tt_ExtCallFncs(0, "Hide");
+ }
+ tt_tShow.EndTimer();
+ tt_tHide.EndTimer();
+ tt_tDurt.EndTimer();
+ tt_tFade.EndTimer();
+ if(!tt_op && !tt_ie)
+ {
+ tt_tWaitMov.EndTimer();
+ tt_bWait = false;
+ }
+ if(tt_aV[CLICKCLOSE])
+ tt_RemEvtFnc(document, "mouseup", tt_HideInit);
+ tt_AddRemOutFnc(false);
+ tt_ExtCallFncs(0, "Kill");
+ // In case of a TagToTip tooltip, hide converted DOM node and
+ // re-insert it into document
+ if(tt_t2t && !tt_aV[COPYCONTENT])
+ {
+ tt_t2t.style.display = "none";
+ tt_MovDomNode(tt_t2t, tt_aElt[6], tt_t2tDad);
+ }
+ tt_iState = 0;
+ tt_over = null;
+ tt_ResetMainDiv();
+ if(tt_aElt[tt_aElt.length - 1])
+ tt_aElt[tt_aElt.length - 1].style.display = "none";
+ }
+}
+function tt_GetElt(id)
+{
+ return(document.getElementById ? document.getElementById(id)
+ : document.all ? document.all[id]
+ : null);
+}
+function tt_GetDivW(el)
+{
+ return(el ? (el.offsetWidth || el.style.pixelWidth || 0) : 0);
+}
+function tt_GetDivH(el)
+{
+ return(el ? (el.offsetHeight || el.style.pixelHeight || 0) : 0);
+}
+function tt_GetScrollX()
+{
+ return(window.pageXOffset || (tt_db ? (tt_db.scrollLeft || 0) : 0));
+}
+function tt_GetScrollY()
+{
+ return(window.pageYOffset || (tt_db ? (tt_db.scrollTop || 0) : 0));
+}
+function tt_GetClientW()
+{
+ return(document.body && (typeof(document.body.clientWidth) != tt_u) ?
document.body.clientWidth
+ : (typeof(window.innerWidth) != tt_u) ?
window.innerWidth
+ : tt_db ? (tt_db.clientWidth || 0)
+ : 0);
+}
+function tt_GetClientH()
+{
+ // Exactly this order seems to yield correct values in all major
browsers
+ return(document.body && (typeof(document.body.clientHeight) != tt_u)
? document.body.clientHeight
+ : (typeof(window.innerHeight) != tt_u) ?
window.innerHeight
+ : tt_db ? (tt_db.clientHeight || 0)
+ : 0);
+}
+function tt_GetEvtX(e)
+{
+ return (e ? ((typeof(e.pageX) != tt_u) ? e.pageX : (e.clientX +
tt_scrlX)) : 0);
+}
+function tt_GetEvtY(e)
+{
+ return (e ? ((typeof(e.pageY) != tt_u) ? e.pageY : (e.clientY +
tt_scrlY)) : 0);
+}
+function tt_AddEvtFnc(el, sEvt, PFnc)
+{
+ if(el)
+ {
+ if(el.addEventListener)
+ el.addEventListener(sEvt, PFnc, false);
+ else
+ el.attachEvent("on" + sEvt, PFnc);
+ }
+}
+function tt_RemEvtFnc(el, sEvt, PFnc)
+{
+ if(el)
+ {
+ if(el.removeEventListener)
+ el.removeEventListener(sEvt, PFnc, false);
+ else
+ el.detachEvent("on" + sEvt, PFnc);
+ }
+}
+
+//====================== PRIVATE
===========================================//
+var tt_aExt = new Array(), // Array of extension objects
+
+tt_db, tt_op, tt_ie, tt_ie56, tt_bBoxOld, // Browser flags
+tt_body,
+tt_flagOpa, // Opacity support: 1=IE, 2=Khtml, 3=KHTML,
4=Moz, 5=W3C
+tt_maxPosX, tt_maxPosY,
+tt_iState = 0, // Tooltip active |= 1, shown |= 2, move with
mouse |= 4
+tt_opa, // Currently applied opacity
+tt_bJmpVert, // Tip above mouse (or ABOVE tip below mouse)
+tt_t2t, tt_t2tDad, // Tag converted to tip, and its parent
element in the document
+tt_elDeHref, // The tag from which Opera has removed the
href attribute
+// Timer
+tt_tShow = new Number(0), tt_tHide = new Number(0), tt_tDurt = new Number(0),
+tt_tFade = new Number(0), tt_tWaitMov = new Number(0),
+tt_bWait = false,
+tt_u = "undefined";
+
+
+function tt_Init()
+{
+ tt_MkCmdEnum();
+ // Send old browsers instantly to hell
+ if(!tt_Browser() || !tt_MkMainDiv())
+ return;
+ tt_IsW3cBox();
+ tt_OpaSupport();
+ tt_AddEvtFnc(document, "mousemove", tt_Move);
+ // In Debug mode we search for TagToTip() calls in order to notify
+ // the user if they've forgotten to set the TagsToTip config flag
+ if(TagsToTip || tt_Debug)
+ tt_SetOnloadFnc();
+ tt_AddEvtFnc(window, "scroll",
+ function()
+ {
+ tt_scrlX = tt_GetScrollX();
+ tt_scrlY = tt_GetScrollY();
+ if(tt_iState && !(tt_aV[STICKY] && (tt_iState & 2)))
+ tt_HideInit();
+ } );
+ // Ensure the tip be hidden when the page unloads
+ tt_AddEvtFnc(window, "unload", tt_Hide);
+ tt_Hide();
+}
+// Creates command names by translating config variable names to upper case
+function tt_MkCmdEnum()
+{
+ var n = 0;
+ for(var i in config)
+ eval("window." + i.toString().toUpperCase() + " = " + n++);
+ tt_aV.length = n;
+}
+function tt_Browser()
+{
+ var n, nv, n6, w3c;
+
+ n = navigator.userAgent.toLowerCase(),
+ nv = navigator.appVersion;
+ tt_op = (document.defaultView && typeof(eval("w" + "indow" + "." +
"o" + "p" + "er" + "a")) != tt_u);
+ tt_ie = n.indexOf("msie") != -1 && document.all && !tt_op;
+ if(tt_ie)
+ {
+ var ieOld = (!document.compatMode || document.compatMode ==
"BackCompat");
+ tt_db = !ieOld ? document.documentElement : (document.body ||
null);
+ if(tt_db)
+ tt_ie56 = parseFloat(nv.substring(nv.indexOf("MSIE")
+ 5)) >= 5.5
+ && typeof
document.body.style.maxHeight == tt_u;
+ }
+ else
+ {
+ tt_db = document.documentElement || document.body ||
+ (document.getElementsByTagName ?
document.getElementsByTagName("body")[0]
+ : null);
+ if(!tt_op)
+ {
+ n6 = document.defaultView && typeof
document.defaultView.getComputedStyle != tt_u;
+ w3c = !n6 && document.getElementById;
+ }
+ }
+ tt_body = (document.getElementsByTagName ?
document.getElementsByTagName("body")[0]
+ : (document.body || null));
+ if(tt_ie || n6 || tt_op || w3c)
+ {
+ if(tt_body && tt_db)
+ {
+ if(document.attachEvent || document.addEventListener)
+ return true;
+ }
+ else
+ tt_Err("wz_tooltip.js must be included INSIDE the
body section,"
+ + " immediately after the opening
<body> tag.");
+ }
+ tt_db = null;
+ return false;
+}
+function tt_MkMainDiv()
+{
+ // Create the tooltip DIV
+ if(tt_body.insertAdjacentHTML)
+ tt_body.insertAdjacentHTML("afterBegin", tt_MkMainDivHtm());
+ else if(typeof tt_body.innerHTML != tt_u && document.createElement &&
tt_body.appendChild)
+ tt_body.appendChild(tt_MkMainDivDom());
+ // FireFox Alzheimer bug
+ if(window.tt_GetMainDivRefs && tt_GetMainDivRefs())
+ return true;
+ tt_db = null;
+ return false;
+}
+function tt_MkMainDivHtm()
+{
+ return('<div id="WzTtDiV"></div>' +
+ (tt_ie56 ? ('<iframe id="WzTtIfRm"
src="javascript:false" scrolling="no" frameborder="0"
style="filter:Alpha(opacity=0);position:absolute;top:0px;left:0px;display:none;"></iframe>')
+ : ''));
+}
+function tt_MkMainDivDom()
+{
+ var el = document.createElement("div");
+ if(el)
+ el.id = "WzTtDiV";
+ return el;
+}
+function tt_GetMainDivRefs()
+{
+ tt_aElt[0] = tt_GetElt("WzTtDiV");
+ if(tt_ie56 && tt_aElt[0])
+ {
+ tt_aElt[tt_aElt.length - 1] = tt_GetElt("WzTtIfRm");
+ if(!tt_aElt[tt_aElt.length - 1])
+ tt_aElt[0] = null;
+ }
+ if(tt_aElt[0])
+ {
+ var css = tt_aElt[0].style;
+
+ css.visibility = "hidden";
+ css.position = "absolute";
+ css.overflow = "hidden";
+ return true;
+ }
+ return false;
+}
+function tt_ResetMainDiv()
+{
+ var w = (window.screen && screen.width) ? screen.width : 10000;
+
+ tt_SetTipPos(-w, 0);
+ tt_aElt[0].innerHTML = "";
+ tt_aElt[0].style.width = (w - 1) + "px";
+}
+function tt_IsW3cBox()
+{
+ var css = tt_aElt[0].style;
+
+ css.padding = "10px";
+ css.width = "40px";
+ tt_bBoxOld = (tt_GetDivW(tt_aElt[0]) == 40);
+ css.padding = "0px";
+ tt_ResetMainDiv();
+}
+function tt_OpaSupport()
+{
+ var css = tt_body.style;
+
+ tt_flagOpa = (typeof(css.filter) != tt_u) ? 1
+ : (typeof(css.KhtmlOpacity) != tt_u) ? 2
+ : (typeof(css.KHTMLOpacity) != tt_u) ? 3
+ : (typeof(css.MozOpacity) != tt_u) ? 4
+ : (typeof(css.opacity) != tt_u) ? 5
+ : 0;
+}
+// Ported from http://dean.edwards.name/weblog/2006/06/again/
+// (Dean Edwards et al.)
+function tt_SetOnloadFnc()
+{
+ tt_AddEvtFnc(document, "DOMContentLoaded", tt_HideSrcTags);
+ tt_AddEvtFnc(window, "load", tt_HideSrcTags);
+ if(tt_body.attachEvent)
+ tt_body.attachEvent("onreadystatechange",
+ function() {
+ if(tt_body.readyState == "complete")
+ tt_HideSrcTags();
+ } );
+ if(/WebKit|KHTML/i.test(navigator.userAgent))
+ {
+ var t = setInterval(function() {
+
if(/loaded|complete/.test(document.readyState))
+ {
+ clearInterval(t);
+ tt_HideSrcTags();
+ }
+ }, 10);
+ }
+}
+function tt_HideSrcTags()
+{
+ if(!window.tt_HideSrcTags || window.tt_HideSrcTags.done)
+ return;
+ window.tt_HideSrcTags.done = true;
+ if(!tt_HideSrcTagsRecurs(tt_body))
+ tt_Err("To enable the capability to convert HTML elements to
tooltips,"
+ + " you must set TagsToTip in the global
tooltip configuration"
+ + " to true.");
+}
+function tt_HideSrcTagsRecurs(dad)
+{
+ var a, ovr, asT2t;
+
+ // Walk the DOM tree for tags that have an onmouseover attribute
+ // containing a TagToTip('...') call.
+ // (.childNodes first since .children is bugous in Safari)
+ a = dad.childNodes || dad.children || null;
+ for(var i = a ? a.length : 0; i;)
+ {--i;
+ if(!tt_HideSrcTagsRecurs(a[i]))
+ return false;
+ ovr = a[i].getAttribute ? a[i].getAttribute("onmouseover")
+ : (typeof a[i].onmouseover == "function") ?
a[i].onmouseover
+ : null;
+ if(ovr)
+ {
+ asT2t =
ovr.toString().match(/TagToTip\s*\(\s*'[^'.]+'\s*[\),]/);
+ if(asT2t && asT2t.length)
+ {
+ if(!tt_HideSrcTag(asT2t[0]))
+ return false;
+ }
+ }
+ }
+ return true;
+}
+function tt_HideSrcTag(sT2t)
+{
+ var id, el;
+
+ // The ID passed to the found TagToTip() call identifies an HTML
element
+ // to be converted to a tooltip, so hide that element
+ id = sT2t.replace(/.+'([^'.]+)'.+/, "$1");
+ el = tt_GetElt(id);
+ if(el)
+ {
+ if(tt_Debug && !TagsToTip)
+ return false;
+ else
+ el.style.display = "none";
+ }
+ else
+ tt_Err("Invalid ID\n'" + id + "'\npassed to TagToTip()."
+ + " There exists no HTML element with that
ID.");
+ return true;
+}
+function tt_Tip(arg, t2t)
+{
+ if(!tt_db)
+ return;
+ if(tt_iState)
+ tt_Hide();
+ if(!tt_Enabled)
+ return;
+ tt_t2t = t2t;
+ if(!tt_ReadCmds(arg))
+ return;
+ tt_iState = 0x1 | 0x4;
+ tt_AdaptConfig1();
+ tt_MkTipContent(arg);
+ tt_MkTipSubDivs();
+ tt_FormatTip();
+ tt_bJmpVert = false;
+ tt_maxPosX = tt_GetClientW() + tt_scrlX - tt_w - 1;
+ tt_maxPosY = tt_GetClientH() + tt_scrlY - tt_h - 1;
+ tt_AdaptConfig2();
+ // We must fake the first mousemove in order to ensure the tip
+ // be immediately shown and positioned
+ tt_Move();
+ tt_ShowInit();
+}
+function tt_ReadCmds(a)
+{
+ var i;
+
+ // First load the global config values, to initialize also values
+ // for which no command has been passed
+ i = 0;
+ for(var j in config)
+ tt_aV[i++] = config[j];
+ // Then replace each cached config value for which a command has been
+ // passed (ensure the # of command args plus value args be even)
+ if(a.length & 1)
+ {
+ for(i = a.length - 1; i > 0; i -= 2)
+ tt_aV[a[i - 1]] = a[i];
+ return true;
+ }
+ tt_Err("Incorrect call of Tip() or TagToTip().\n"
+ + "Each command must be followed by a value.");
+ return false;
+}
+function tt_AdaptConfig1()
+{
+ tt_ExtCallFncs(0, "LoadConfig");
+ // Inherit unspecified title formattings from body
+ if(!tt_aV[TITLEBGCOLOR].length)
+ tt_aV[TITLEBGCOLOR] = tt_aV[BORDERCOLOR];
+ if(!tt_aV[TITLEFONTCOLOR].length)
+ tt_aV[TITLEFONTCOLOR] = tt_aV[BGCOLOR];
+ if(!tt_aV[TITLEFONTFACE].length)
+ tt_aV[TITLEFONTFACE] = tt_aV[FONTFACE];
+ if(!tt_aV[TITLEFONTSIZE].length)
+ tt_aV[TITLEFONTSIZE] = tt_aV[FONTSIZE];
+ if(tt_aV[CLOSEBTN])
+ {
+ // Use title colors for non-specified closebutton colors
+ if(!tt_aV[CLOSEBTNCOLORS])
+ tt_aV[CLOSEBTNCOLORS] = new Array("", "", "", "");
+ for(var i = 4; i;)
+ {--i;
+ if(!tt_aV[CLOSEBTNCOLORS][i].length)
+ tt_aV[CLOSEBTNCOLORS][i] = (i & 1) ?
tt_aV[TITLEFONTCOLOR] : tt_aV[TITLEBGCOLOR];
+ }
+ // Enforce titlebar be shown
+ if(!tt_aV[TITLE].length)
+ tt_aV[TITLE] = " ";
+ }
+ // Circumvents broken display of images and fade-in flicker in Geckos
< 1.8
+ if(tt_aV[OPACITY] == 100 && typeof tt_aElt[0].style.MozOpacity !=
tt_u && !Array.every)
+ tt_aV[OPACITY] = 99;
+ // Smartly shorten the delay for fade-in tooltips
+ if(tt_aV[FADEIN] && tt_flagOpa && tt_aV[DELAY] > 100)
+ tt_aV[DELAY] = Math.max(tt_aV[DELAY] - tt_aV[FADEIN], 100);
+}
+function tt_AdaptConfig2()
+{
+ if(tt_aV[CENTERMOUSE])
+ tt_aV[OFFSETX] -= ((tt_w - (tt_aV[SHADOW] ?
tt_aV[SHADOWWIDTH] : 0)) >> 1);
+}
+// Expose content globally so extensions can modify it
+function tt_MkTipContent(a)
+{
+ if(tt_t2t)
+ {
+ if(tt_aV[COPYCONTENT])
+ tt_sContent = tt_t2t.innerHTML;
+ else
+ tt_sContent = "";
+ }
+ else
+ tt_sContent = a[0];
+ tt_ExtCallFncs(0, "CreateContentString");
+}
+function tt_MkTipSubDivs()
+{
+ var sCss =
'position:relative;margin:0px;padding:0px;border-width:0px;left:0px;top:0px;line-height:normal;width:auto;',
+ sTbTrTd = ' cellspacing=0 cellpadding=0 border=0 style="' + sCss +
'"><tbody style="' + sCss + '"><tr><td ';
+
+ tt_aElt[0].innerHTML =
+ (''
+ + (tt_aV[TITLE].length ?
+ ('<div id="WzTiTl"
style="position:relative;z-index:1;">'
+ + '<table id="WzTiTlTb"' + sTbTrTd + 'id="WzTiTlI"
style="' + sCss + '">'
+ + tt_aV[TITLE]
+ + '</td>'
+ + (tt_aV[CLOSEBTN] ?
+ ('<td align="right" style="' + sCss
+ + 'text-align:right;">'
+ + '<span id="WzClOsE"
style="padding-left:2px;padding-right:2px;'
+ + 'cursor:' + (tt_ie ? 'hand' : 'pointer')
+ + ';" onmouseover="tt_OnCloseBtnOver(1)"
onmouseout="tt_OnCloseBtnOver(0)" onclick="tt_HideInit()">'
+ + tt_aV[CLOSEBTNTEXT]
+ + '</span></td>')
+ : '')
+ + '</tr></tbody></table></div>')
+ : '')
+ + '<div id="WzBoDy" style="position:relative;z-index:0;">'
+ + '<table' + sTbTrTd + 'id="WzBoDyI" style="' + sCss + '">'
+ + tt_sContent
+ + '</td></tr></tbody></table></div>'
+ + (tt_aV[SHADOW]
+ ? ('<div id="WzTtShDwR"
style="position:absolute;overflow:hidden;"></div>'
+ + '<div id="WzTtShDwB"
style="position:relative;overflow:hidden;"></div>')
+ : '')
+ );
+ tt_GetSubDivRefs();
+ // Convert DOM node to tip
+ if(tt_t2t && !tt_aV[COPYCONTENT])
+ {
+ // Store the tag's parent element so we can restore that DOM
branch
+ // once the tooltip is hidden
+ tt_t2tDad = tt_t2t.parentNode || tt_t2t.parentElement ||
tt_t2t.offsetParent || null;
+ if(tt_t2tDad)
+ {
+ tt_MovDomNode(tt_t2t, tt_t2tDad, tt_aElt[6]);
+ tt_t2t.style.display = "block";
+ }
+ }
+ tt_ExtCallFncs(0, "SubDivsCreated");
+}
+function tt_GetSubDivRefs()
+{
+ var aId = new Array("WzTiTl", "WzTiTlTb", "WzTiTlI", "WzClOsE",
"WzBoDy", "WzBoDyI", "WzTtShDwB", "WzTtShDwR");
+
+ for(var i = aId.length; i; --i)
+ tt_aElt[i] = tt_GetElt(aId[i - 1]);
+}
+function tt_FormatTip()
+{
+ var css, w, iOffY, iOffSh;
+
+ //--------- Title DIV ----------
+ if(tt_aV[TITLE].length)
+ {
+ css = tt_aElt[1].style;
+ css.background = tt_aV[TITLEBGCOLOR];
+ css.paddingTop = (tt_aV[CLOSEBTN] ? 2 : 0) + "px";
+ css.paddingBottom = "1px";
+ css.paddingLeft = css.paddingRight = tt_aV[PADDING] + "px";
+ css = tt_aElt[3].style;
+ css.color = tt_aV[TITLEFONTCOLOR];
+ css.fontFamily = tt_aV[TITLEFONTFACE];
+ css.fontSize = tt_aV[TITLEFONTSIZE];
+ css.fontWeight = "bold";
+ css.textAlign = tt_aV[TITLEALIGN];
+ // Close button DIV
+ if(tt_aElt[4])
+ {
+ css.paddingRight = (tt_aV[PADDING] << 1) + "px";
+ css = tt_aElt[4].style;
+ css.background = tt_aV[CLOSEBTNCOLORS][0];
+ css.color = tt_aV[CLOSEBTNCOLORS][1];
+ css.fontFamily = tt_aV[TITLEFONTFACE];
+ css.fontSize = tt_aV[TITLEFONTSIZE];
+ css.fontWeight = "bold";
+ }
+ if(tt_aV[WIDTH] > 0)
+ tt_w = tt_aV[WIDTH] + ((tt_aV[PADDING] +
tt_aV[BORDERWIDTH]) << 1);
+ else
+ {
+ tt_w = tt_GetDivW(tt_aElt[3]) +
tt_GetDivW(tt_aElt[4]);
+ // Some spacing between title DIV and closebutton
+ if(tt_aElt[4])
+ tt_w += tt_aV[PADDING];
+ }
+ // Ensure the top border of the body DIV be covered by the
title DIV
+ iOffY = -tt_aV[BORDERWIDTH];
+ }
+ else
+ {
+ tt_w = 0;
+ iOffY = 0;
+ }
+
+ //-------- Body DIV ------------
+ css = tt_aElt[5].style;
+ css.top = iOffY + "px";
+ if(tt_aV[BORDERWIDTH])
+ {
+ css.borderColor = tt_aV[BORDERCOLOR];
+ css.borderStyle = tt_aV[BORDERSTYLE];
+ css.borderWidth = tt_aV[BORDERWIDTH] + "px";
+ }
+ if(tt_aV[BGCOLOR].length)
+ css.background = tt_aV[BGCOLOR];
+ if(tt_aV[BGIMG].length)
+ css.backgroundImage = "url(" + tt_aV[BGIMG] + ")";
+ css.padding = tt_aV[PADDING] + "px";
+ css.textAlign = tt_aV[TEXTALIGN];
+ // TD inside body DIV
+ css = tt_aElt[6].style;
+ css.color = tt_aV[FONTCOLOR];
+ css.fontFamily = tt_aV[FONTFACE];
+ css.fontSize = tt_aV[FONTSIZE];
+ css.fontWeight = tt_aV[FONTWEIGHT];
+ css.background = "";
+ css.textAlign = tt_aV[TEXTALIGN];
+ if(tt_aV[WIDTH] > 0)
+ w = tt_aV[WIDTH] + ((tt_aV[PADDING] + tt_aV[BORDERWIDTH]) <<
1);
+ else
+ // We measure the width of the body's inner TD, because some
browsers
+ // expand the width of the container and outer body DIV to
100%
+ w = tt_GetDivW(tt_aElt[6]) + ((tt_aV[PADDING] +
tt_aV[BORDERWIDTH]) << 1);
+ if(w > tt_w)
+ tt_w = w;
+
+ //--------- Shadow DIVs ------------
+ if(tt_aV[SHADOW])
+ {
+ tt_w += tt_aV[SHADOWWIDTH];
+ iOffSh = Math.floor((tt_aV[SHADOWWIDTH] * 4) / 3);
+ // Bottom shadow
+ css = tt_aElt[7].style;
+ css.top = iOffY + "px";
+ css.left = iOffSh + "px";
+ css.width = (tt_w - iOffSh - tt_aV[SHADOWWIDTH]) + "px";
+ css.height = tt_aV[SHADOWWIDTH] + "px";
+ css.background = tt_aV[SHADOWCOLOR];
+ // Right shadow
+ css = tt_aElt[8].style;
+ css.top = iOffSh + "px";
+ css.left = (tt_w - tt_aV[SHADOWWIDTH]) + "px";
+ css.width = tt_aV[SHADOWWIDTH] + "px";
+ css.background = tt_aV[SHADOWCOLOR];
+ }
+ else
+ iOffSh = 0;
+
+ //-------- Container DIV -------
+ tt_SetTipOpa(tt_aV[FADEIN] ? 0 : tt_aV[OPACITY]);
+ tt_FixSize(iOffY, iOffSh);
+}
+// Fixate the size so it can't dynamically change while the tooltip is
moving.
+function tt_FixSize(iOffY, iOffSh)
+{
+ var wIn, wOut, i;
+
+ tt_aElt[0].style.width = tt_w + "px";
+ tt_aElt[0].style.pixelWidth = tt_w;
+ wOut = tt_w - ((tt_aV[SHADOW]) ? tt_aV[SHADOWWIDTH] : 0);
+ // Body
+ wIn = wOut;
+ if(!tt_bBoxOld)
+ wIn -= ((tt_aV[PADDING] + tt_aV[BORDERWIDTH]) << 1);
+ tt_aElt[5].style.width = wIn + "px";
+ // Title
+ if(tt_aElt[1])
+ {
+ wIn = wOut - (tt_aV[PADDING] << 1);
+ if(!tt_bBoxOld)
+ wOut = wIn;
+ tt_aElt[1].style.width = wOut + "px";
+ tt_aElt[2].style.width = wIn + "px";
+ }
+ tt_h = tt_GetDivH(tt_aElt[0]) + iOffY;
+ // Right shadow
+ if(tt_aElt[8])
+ tt_aElt[8].style.height = (tt_h - iOffSh) + "px";
+ i = tt_aElt.length - 1;
+ if(tt_aElt[i])
+ {
+ tt_aElt[i].style.width = tt_w + "px";
+ tt_aElt[i].style.height = tt_h + "px";
+ }
+}
+function tt_DeAlt(el)
+{
+ var aKid;
+
+ if(el.alt)
+ el.alt = "";
+ if(el.title)
+ el.title = "";
+ aKid = el.childNodes || el.children || null;
+ if(aKid)
+ {
+ for(var i = aKid.length; i;)
+ tt_DeAlt(aKid[--i]);
+ }
+}
+// This hack removes the annoying native tooltips over links in Opera
+function tt_OpDeHref(el)
+{
+ if(!tt_op)
+ return;
+ if(tt_elDeHref)
+ tt_OpReHref();
+ while(el)
+ {
+ if(el.hasAttribute("href"))
+ {
+ el.t_href = el.getAttribute("href");
+ el.t_stats = window.status;
+ el.removeAttribute("href");
+ el.style.cursor = "hand";
+ tt_AddEvtFnc(el, "mousedown", tt_OpReHref);
+ window.status = el.t_href;
+ tt_elDeHref = el;
+ break;
+ }
+ el = el.parentElement;
+ }
+}
+function tt_ShowInit()
+{
+ tt_tShow.Timer("tt_Show()", tt_aV[DELAY], true);
+ if(tt_aV[CLICKCLOSE])
+ tt_AddEvtFnc(document, "mouseup", tt_HideInit);
+}
+function tt_OverInit(e)
+{
+ tt_over = e.target || e.srcElement;
+ tt_DeAlt(tt_over);
+ tt_OpDeHref(tt_over);
+ tt_AddRemOutFnc(true);
+}
+function tt_Show()
+{
+ var css = tt_aElt[0].style;
+
+ // Override the z-index of the topmost wz_dragdrop.js D&D item
+ css.zIndex = Math.max((window.dd && dd.z) ? (dd.z + 2) : 0, 1010);
+ if(tt_aV[STICKY] || !tt_aV[FOLLOWMOUSE])
+ tt_iState &= ~0x4;
+ if(tt_aV[DURATION] > 0)
+ tt_tDurt.Timer("tt_HideInit()", tt_aV[DURATION], true);
+ tt_ExtCallFncs(0, "Show")
+ css.visibility = "visible";
+ tt_iState |= 0x2;
+ if(tt_aV[FADEIN])
+ tt_Fade(0, 0, tt_aV[OPACITY], Math.round(tt_aV[FADEIN] /
tt_aV[FADEINTERVAL]));
+ tt_ShowIfrm();
+}
+function tt_ShowIfrm()
+{
+ if(tt_ie56)
+ {
+ var ifrm = tt_aElt[tt_aElt.length - 1];
+ if(ifrm)
+ {
+ var css = ifrm.style;
+ css.zIndex = tt_aElt[0].style.zIndex - 1;
+ css.display = "block";
+ }
+ }
+}
+function tt_Move(e)
+{
+ e = window.event || e;
+ if(e)
+ {
+ tt_musX = tt_GetEvtX(e);
+ tt_musY = tt_GetEvtY(e);
+ }
+ if(tt_iState)
+ {
+ if(!tt_over && e)
+ tt_OverInit(e);
+ if(tt_iState & 0x4)
+ {
+ // Protect some browsers against jam of mousemove
events
+ if(!tt_op && !tt_ie)
+ {
+ if(tt_bWait)
+ return;
+ tt_bWait = true;
+ tt_tWaitMov.Timer("tt_bWait = false;", 1,
true);
+ }
+ if(tt_aV[FIX])
+ {
+ tt_iState &= ~0x4;
+ tt_SetTipPos(tt_aV[FIX][0], tt_aV[FIX][1]);
+ }
+ else if(!tt_ExtCallFncs(e, "MoveBefore"))
+ tt_SetTipPos(tt_PosX(), tt_PosY());
+ tt_ExtCallFncs([tt_musX, tt_musY], "MoveAfter")
+ }
+ }
+}
+function tt_PosX()
+{
+ var x;
+
+ x = tt_musX;
+ if(tt_aV[LEFT])
+ x -= tt_w + tt_aV[OFFSETX] - (tt_aV[SHADOW] ?
tt_aV[SHADOWWIDTH] : 0);
+ else
+ x += tt_aV[OFFSETX];
+ // Prevent tip from extending past right/left clientarea boundary
+ if(x > tt_maxPosX)
+ x = tt_maxPosX;
+ return((x < tt_scrlX) ? tt_scrlX : x);
+}
+function tt_PosY()
+{
+ var y;
+
+ // Apply some hysteresis after the tip has snapped to the other side
of the
+ // mouse. In case of insufficient space above and below the mouse, we
place
+ // the tip below.
+ if(tt_aV[ABOVE] && (!tt_bJmpVert || tt_CalcPosYAbove() >= tt_scrlY +
16))
+ y = tt_DoPosYAbove();
+ else if(!tt_aV[ABOVE] && tt_bJmpVert && tt_CalcPosYBelow() >
tt_maxPosY - 16)
+ y = tt_DoPosYAbove();
+ else
+ y = tt_DoPosYBelow();
+ // Snap to other side of mouse if tip would extend past window
boundary
+ if(y > tt_maxPosY)
+ y = tt_DoPosYAbove();
+ if(y < tt_scrlY)
+ y = tt_DoPosYBelow();
+ return y;
+}
+function tt_DoPosYBelow()
+{
+ tt_bJmpVert = tt_aV[ABOVE];
+ return tt_CalcPosYBelow();
+}
+function tt_DoPosYAbove()
+{
+ tt_bJmpVert = !tt_aV[ABOVE];
+ return tt_CalcPosYAbove();
+}
+function tt_CalcPosYBelow()
+{
+ return(tt_musY + tt_aV[OFFSETY]);
+}
+function tt_CalcPosYAbove()
+{
+ var dy = tt_aV[OFFSETY] - (tt_aV[SHADOW] ? tt_aV[SHADOWWIDTH] : 0);
+ if(tt_aV[OFFSETY] > 0 && dy <= 0)
+ dy = 1;
+ return(tt_musY - tt_h - dy);
+}
+function tt_OnOut()
+{
+ tt_AddRemOutFnc(false);
+ if(!(tt_aV[STICKY] && (tt_iState & 0x2)))
+ tt_HideInit();
+}
+function tt_HideInit()
+{
+ tt_ExtCallFncs(0, "HideInit");
+ tt_iState &= ~0x4;
+ if(tt_flagOpa && tt_aV[FADEOUT])
+ {
+ tt_tFade.EndTimer();
+ if(tt_opa)
+ {
+ var n = Math.round(tt_aV[FADEOUT] /
(tt_aV[FADEINTERVAL] * (tt_aV[OPACITY] / tt_opa)));
+ tt_Fade(tt_opa, tt_opa, 0, n);
+ return;
+ }
+ }
+ tt_tHide.Timer("tt_Hide();", 1, false);
+}
+function tt_OpReHref()
+{
+ if(tt_elDeHref)
+ {
+ tt_elDeHref.setAttribute("href", tt_elDeHref.t_href);
+ tt_RemEvtFnc(tt_elDeHref, "mousedown", tt_OpReHref);
+ window.status = tt_elDeHref.t_stats;
+ tt_elDeHref = null;
+ }
+}
+function tt_Fade(a, now, z, n)
+{
+ if(n)
+ {
+ now += Math.round((z - now) / n);
+ if((z > a) ? (now >= z) : (now <= z))
+ now = z;
+ else
+ tt_tFade.Timer("tt_Fade("
+ + a + "," + now + ","
+ z + "," + (n - 1)
+ + ")",
+ tt_aV[FADEINTERVAL],
+ true);
+ }
+ now ? tt_SetTipOpa(now) : tt_Hide();
+}
+// To circumvent the opacity nesting flaws of IE, we set the opacity
+// for each sub-DIV separately, rather than for the container DIV.
+function tt_SetTipOpa(opa)
+{
+ tt_SetOpa(tt_aElt[5].style, opa);
+ if(tt_aElt[1])
+ tt_SetOpa(tt_aElt[1].style, opa);
+ if(tt_aV[SHADOW])
+ {
+ opa = Math.round(opa * 0.8);
+ tt_SetOpa(tt_aElt[7].style, opa);
+ tt_SetOpa(tt_aElt[8].style, opa);
+ }
+}
+function tt_OnCloseBtnOver(iOver)
+{
+ var css = tt_aElt[4].style;
+
+ iOver <<= 1;
+ css.background = tt_aV[CLOSEBTNCOLORS][iOver];
+ css.color = tt_aV[CLOSEBTNCOLORS][iOver + 1];
+}
+function tt_Int(x)
+{
+ var y;
+
+ return(isNaN(y = parseInt(x)) ? 0 : y);
+}
+// Adds or removes the document.mousemove or HoveredElem.mouseout handler
+// conveniently. Keeps track of those handlers to prevent them from being
+// set or removed redundantly.
+function tt_AddRemOutFnc(bAdd)
+{
+ var PSet = bAdd ? tt_AddEvtFnc : tt_RemEvtFnc;
+
+ if(bAdd != tt_AddRemOutFnc.bOn)
+ {
+ PSet(tt_over, "mouseout", tt_OnOut);
+ tt_AddRemOutFnc.bOn = bAdd;
+ if(!bAdd)
+ tt_OpReHref();
+ }
+}
+tt_AddRemOutFnc.bOn = false;
+Number.prototype.Timer = function(s, iT, bUrge)
+{
+ if(!this.value || bUrge)
+ this.value = window.setTimeout(s, iT);
+}
+Number.prototype.EndTimer = function()
+{
+ if(this.value)
+ {
+ window.clearTimeout(this.value);
+ this.value = 0;
+ }
+}
+function tt_SetOpa(css, opa)
+{
+ tt_opa = opa;
+ if(tt_flagOpa == 1)
+ {
+ // Hack for bugs of IE:
+ // A DIV cannot be made visible in a single step if an
opacity < 100
+ // has been applied while the DIV was hidden.
+ // Moreover, in IE6, applying an opacity < 100 has no effect
if the
+ // concerned element has no layout (position, size, zoom,
...).
+ if(opa < 100)
+ {
+ var bVis = css.visibility != "hidden";
+ css.zoom = "100%";
+ if(!bVis)
+ css.visibility = "visible";
+ css.filter = "alpha(opacity=" + opa + ")";
+ if(!bVis)
+ css.visibility = "hidden";
+ }
+ else
+ css.filter = "";
+ }
+ else
+ {
+ opa /= 100.0;
+ switch(tt_flagOpa)
+ {
+ case 2:
+ css.KhtmlOpacity = opa; break;
+ case 3:
+ css.KHTMLOpacity = opa; break;
+ case 4:
+ css.MozOpacity = opa; break;
+ case 5:
+ css.opacity = opa; break;
+ }
+ }
+}
+function tt_MovDomNode(el, dadFrom, dadTo)
+{
+ if(dadFrom)
+ dadFrom.removeChild(el);
+ if(dadTo)
+ dadTo.appendChild(el);
+}
+function tt_Err(sErr)
+{
+ if(tt_Debug)
+ alert("Tooltip Script Error Message:\n\n" + sErr);
+}
+
+//=========== DEALING WITH EXTENSIONS ==============//
+function tt_ExtCmdEnum()
+{
+ var s;
+
+ // Add new command(s) to the commands enum
+ for(var i in config)
+ {
+ s = "window." + i.toString().toUpperCase();
+ if(eval("typeof(" + s + ") == tt_u"))
+ {
+ eval(s + " = " + tt_aV.length);
+ tt_aV[tt_aV.length] = null;
+ }
+ }
+}
+function tt_ExtCallFncs(arg, sFnc)
+{
+ var b = false;
+ for(var i = tt_aExt.length; i;)
+ {--i;
+ var fnc = tt_aExt[i]["On" + sFnc];
+ // Call the method the extension has defined for this event
+ if(fnc && fnc(arg))
+ b = true;
+ }
+ return b;
+}
+
+tt_Init();
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/scripts/wz_tooltip.js
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/soapMessages/selfTest.xml
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/soapMessages/selfTest.xml
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/soapMessages/selfTest.xml
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,12 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soapenv:Body>
+
+ <nmwg:message xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/"
id="message1262167219" type="EchoRequest">
+ <nmwg:metadata id="meta">
+
<nmwg:eventType>http://schemas.perfsonar.net/tools/admin/selftest/1.0</nmwg:eventType>
+ </nmwg:metadata>
+ <nmwg:data id="data" metadataIdRef="meta"/>
+ </nmwg:message>
+
+ </soapenv:Body>
+</soapenv:Envelope>
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/default.css
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/default.css
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/default.css
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,114 @@
+a img {
+ border: none;
+}
+
+/* Wizard CSS */
+.top {
+ display: block;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ margin: 0% 1% 0 1%;
+ border-bottom: 1px dotted #468C46;
+ padding: 7px;
+ background: #ffffff;
+}
+
+.greenasterisk {
+ font-size: 130%;
+ color: #468C46;
+}
+
+.properties {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ padding: 10px;
+ margin: 0% 1% 0 1%;
+}
+
+.properties em {
+ display: block;
+ color: red;
+ font-size: 95%;
+}
+
+.properties p {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.properties table {
+ border-bottom: 1px dotted #468C46;
+ margin-bottom: 20px;
+}
+
+.properties td {
+ padding: 5px;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.inner_properties {
+ padding: 0px;
+ margin: 0px;
+}
+
+.inner_properties table {
+ border: none;
+ margin: 0px;
+ padding: 0px;
+}
+
+.input {
+ padding: 1em;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.input_style {
+ border-color: #468C46;
+ border-style: solid;
+ border-width: 1px;
+}
+
+/*Properties Buttons CSS*/
+.floatResetButton {
+ position: fixed;
+ width: 64px;
+ height: 28px;
+ margin: 0;
+ padding: 0;
+ border: 0;
+ text-indent: -1000em;
+ cursor: pointer;
+ background: transparent url(graphics/cancel_button.gif) no-repeat
center
+ top;
+ float: right;
+}
+
+.floatSubmitButton {
+ position: fixed;;
+ width: 53px;
+ height: 28px;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ text-indent: -1000em;
+ cursor: pointer;
+ background: transparent url(graphics/apply_button_2.gif) no-repeat
+ center top;
+ float: right;
+}
+
+.submit_button {
+ width: 53px;
+ height: 28px;
+ margin: 0;
+ border: 0;
+ padding: 0;
+ text-indent: -1000em;
+ cursor: pointer;
+ background: transparent url(graphics/apply_button.gif) no-repeat
center
+ top;
+ float: none;
+}
\ No newline at end of file
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/default.css
___________________________________________________________________
Name: svn:executable
+ *
Added:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/main.css
===================================================================
---
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/main.css
(rev 0)
+++
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/main.css
2010-05-20 08:56:47 UTC (rev 5666)
@@ -0,0 +1,342 @@
+/* standard elements */
+* {
+ margin: 0;
+ padding: 0;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ text-decoration: none;
+ border-top-style: none;
+ border-right-style: none;
+ border-bottom-style: none;
+ border-left-style: none;
+}
+
+body {
+ background-color: #C0C0C0;
+ width: 95%;
+ height: 92%;
+ padding-top: 10px;
+}
+
+div.main {
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+}
+
+a:link {
+ color: #468C46;
+ cursor: pointer;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+a:active {
+ color: #117721;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+a:visited {
+ color: #468C46;
+ cursor: auto;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+a:hover {
+ color: #468C46;
+ cursor: pointer;
+ text-decoration: underline;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.adminPanel {
+ width: 94%;
+ height: 50%;
+ float: left;
+ margin-left: 3%;
+ margin-right: 5%;
+ background-color: #ffffff;
+ margin-bottom: 2%;
+}
+
+.navtex {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ text-align: right;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 28px;
+ background-image: none;
+}
+
+.navtexheading {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ text-align: right;
+ font-style: normal;
+ font-weight: bold;
+ line-height: normal;
+}
+
+.welcometext {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ color: #468C46;
+ border-bottom-width: 1px;
+ border-bottom-style: dotted;
+ border-bottom-color: #468C46;
+ padding-top: 10px;
+ padding-bottom: 8px;
+ padding-right: 0px;
+ clip: rect(auto, auto, auto, auto);
+ margin-right: 0px;
+ margin-left: 2%;
+}
+
+.heading1 {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #468C46;
+ padding-top: 23px;
+ padding-bottom: 23px;
+ font-weight: bold;
+ margin-left: 2%;
+}
+
+.contenttable {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #468C46;
+ padding-top: 0px;
+ margin-left: 20px;
+ font-weight: bold;
+ background-color: #FFFFFF;
+}
+
+.configheadinglavender {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #8585C1;
+ font-weight: bold;
+ background-image: url(../graphics/arrow_icon2.gif);
+ background-repeat: no-repeat;
+ background-position: 17px top;
+ padding-left: 38px;
+}
+
+.configheadinglavender a:link {
+ color: #8585C1;
+ cursor: pointer;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheadinglavender a:active {
+ color: #117721;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+.configheadinglavender a:visited {
+ color: #8585C1;
+ cursor: auto;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheadinglavender a:hover {
+ color: #8585C1;
+ cursor: pointer;
+ text-decoration: underline;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheading {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #27752C;
+ font-weight: bold;
+ background-image: url(../graphics/arrow_icon.gif);
+ background-repeat: no-repeat;
+ background-position: 17px top;
+ padding-left: 38px;
+}
+
+.configheading a:link {
+ color: #27752C;
+ cursor: pointer;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheading a:active {
+ color: #117721;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+.configheading a:visited {
+ color: #27752C;
+ cursor: auto;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.configheading a:hover {
+ color: #27752C;
+ cursor: pointer;
+ text-decoration: underline;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+.banner {
+ margin: 5px;
+ width: 99%;
+ height: 94px;
+ background-image: url(../graphics/top_slice.gif);
+ background-color: #FFFFFF;
+ padding: 0px;
+ clip: rect(auto, auto, auto, auto);
+ float: left;
+}
+
+#date {
+ padding-top: 5px;
+ float: right;
+ text-align: right;
+ margin-left: 79.5%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+}
+
+#serviceName {
+ padding-top: 5px;
+ float: right;
+ text-align: right;
+ margin-left: 79.5%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 13px;
+ font-weight: bold;
+}
+
+.mainWindow {
+ border: none;
+ padding: 0px;
+ width: 100%;
+ height: 750px;
+ background-color: #ffffff;
+}
+
+.centerWindow {
+ background-color: #FFFFFF;
+ width: 82%;
+ height: 80%;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ margin-left: 0;
+ float: left;
+}
+
+.centerWindow object {
+ width: 101%;
+ height: 105%;
+ background-color: #FFFFFF;
+}
+
+/* Sidebar*/
+.sidebar {
+ width: 15%;
+ height: 71.1%;
+ padding-bottom: 12.1%;
+ padding-right: 0px;
+ float: left;
+ border-right-width: 1px;
+ border-right-style: solid;
+ border-right-color: #61AF61;
+ margin-top: 0px;
+ margin-right: 5px;
+ margin-bottom: 5px;
+ margin-left: 5px;
+}
+
+.sidebar th {
+ color: #ffffff;
+ text-align: right;
+ background-color: #61AF61;
+ width: 15%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ background-repeat: no-repeat;
+ padding-top: 10px;
+ padding-right: 8%;
+ padding-bottom: 10px;
+ padding-left: 10px;
+}
+
+.sidebar td {
+ text-align: right;
+ background-color: #ffffff;
+ padding: 10px;
+ border-bottom-width: 1px;
+ border-bottom-style: dotted;
+ border-bottom-color: #92C992;
+}
+
+.sidebar a.button {
+ color: #ffffff;
+ text-align: left;
+ background-color: #61AF61;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-weight: normal;
+ text-decoration: none;
+ background-position: 100% 50%;
+ background-image: url(../graphics/admin_home_target.gif);
+ background-repeat: no-repeat;
+}
+
+.sidebar a {
+ font-weight: normal;
+ padding-top: 0px;
+ padding-right: 0px;
+ padding-bottom: 0px;
+ padding-left: 0px;
+ margin-bottom: 0px;
+}
+
+.sidebar img {
+ float: right;
+ border: none;
+ padding-top: 0px;
+ padding-right: 0px;
+ padding-bottom: 0px;
+}
+
+.footer {
+ height: 20px;
+ text-align: right;
+ color: #61AF61;
+ background-color: #ffffff;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ border-top-width: 1px;
+ border-top-style: dotted;
+ border-top-color: #61AF61;
+ padding-top: 12px;
+ width: 100%;
+ border-right-style: none;
+ border-right-color: #FFFFFF;
+ border-left-color: #FFFFFF;
+ float: none;
+}
\ No newline at end of file
Property changes on:
trunk/perfsonar-java-web-admin/perfsonar-java-web-admin-exampleservice/src/main/webapp/styles/main.css
___________________________________________________________________
Name: svn:executable
+ *
Added: trunk/perfsonar-java-web-admin/pom.xml
===================================================================
--- trunk/perfsonar-java-web-admin/pom.xml (rev
0)
+++ trunk/perfsonar-java-web-admin/pom.xml 2010-05-20 08:56:47 UTC (rev
5666)
@@ -0,0 +1,14 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+<groupId>perfsonar</groupId>
+<artifactId>perfsonar-web-admin</artifactId>
+ <version>1.0</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>perfsonar-java-web-admin-component</module>
+ <module>perfsonar-java-web-admin-exampleservice</module>
+ </modules>
+</project>
- [GEANT/SA2/ps-java-services] r5666 - in trunk/perfsonar-java-web-admin: . perfsonar-java-web-admin-component perfsonar-java-web-admin-component/.settings perfsonar-java-web-admin-component/src perfsonar-java-web-admin-component/src/jaxme perfsonar-java-web-admin-component/src/main perfsonar-java-web-admin-component/src/main/java perfsonar-java-web-admin-component/src/main/java/org perfsonar-java-web-admin-component/src/main/java/org/perfsonar perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2 perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/config perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/selftest perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/servlet/util perfsonar-java-web-admin-component/ src/main/java/org/perfsonar/webadmin/base2/test perfsonar-java-web-admin-component/src/main/java/org/perfsonar/webadmin/base2/util perfsonar-java-web-admin-component/src/main/resources perfsonar-java-web-admin-component/src/main/resources/wa perfsonar-java-web-admin-component/src/main/resources/wa/graphics perfsonar-java-web-admin-component/src/main/resources/wa/scripts perfsonar-java-web-admin-component/src/main/resources/wa/soapMessages perfsonar-java-web-admin-component/src/main/resources/wa/styles perfsonar-java-web-admin-component/src/main/webapp perfsonar-java-web-admin-component/src/main/webapp/WEB-INF perfsonar-java-web-admin-component/src/main/webapp/views perfsonar-java-web-admin-component/src/test perfsonar-java-web-admin-component/src/test/java perfsonar-java-web-admin-component/src/test/java/org perfsonar-java-web-admin-component/src/test/java/org/perfsonar perfsonar-java-web-admin-component/src/test/resources perfsonar-java-web-admin-exampleservice perfsonar-ja va-web-admin-exampleservice/src perfsonar-java-web-admin-exa! mpleservice/src/main perfsonar-java-web-admin-exampleservice/src/main/webapp perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF perfsonar-java-web-admin-exampleservice/src/main/webapp/WEB-INF/classes perfsonar-java-web-admin-exampleservice/src/main/we, svn-noreply, 05/20/2010
Archive powered by MHonArc 2.6.16.