r606 - in trunk: echobase-domain/src/main/java/fr/ifremer/echobase/entities echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb echobase-ui/src/main/resources/config echobase-ui/src/main/resources/i18n echobase-ui/src/main/webapp/WEB-INF/includes echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb
Author: tchemit Date: 2012-09-03 21:23:14 +0200 (Mon, 03 Sep 2012) New Revision: 606 Url: http://forge.codelutin.com/repositories/revision/echobase/606 Log: improve working db cinematic Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/DownloadDriver.java Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/information.jsp Modified: trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java =================================================================== --- trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DriverType.java 2012-09-03 19:23:14 UTC (rev 606) @@ -42,18 +42,18 @@ H2Dialect.class, n_("echobase.common.driverType.h2")) { @Override - public String getPilotFileName(EchoBaseConfiguration config) { + public String getPilotVersion(EchoBaseConfiguration config) { String version = config.getH2Version(); - return version == null ? null : "h2-" + version + ".jar"; + return version; } }, POSTGRESQL(org.postgresql.Driver.class, PostgreSQLDialect.class, n_("echobase.common.driverType.postgres")) { @Override - public String getPilotFileName(EchoBaseConfiguration config) { - String pgVersion = config.getPostgresqlVersion(); - return pgVersion == null ? null : "postgresql-" + pgVersion + ".jar"; + public String getPilotVersion(EchoBaseConfiguration config) { + String version = config.getPostgresqlVersion(); + return version; } }; @@ -79,8 +79,13 @@ return dialectClass; } - public abstract String getPilotFileName(EchoBaseConfiguration config); + public abstract String getPilotVersion(EchoBaseConfiguration config); + public final String getPilotFileName(EchoBaseConfiguration config) { + String version = getPilotVersion(config); + return version == null ? null : name().toLowerCase() + "-" + version + ".jar"; + } + @Override public String getI18nKey() { return i18nKey; Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/embeddedapplication/EmbeddedApplicationService.java 2012-09-03 19:23:14 UTC (rev 606) @@ -60,9 +60,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.net.URISyntaxException; import java.util.List; -import java.util.Properties; /** * To create embedded application. @@ -304,15 +302,21 @@ protected void createStaticArchiveStructure(EmbeddedApplicationConfiguration model, File dir) { try { - File warLocation = model.getWarLocation(); // create / FileUtil.createDirectoryIfNecessary(dir); // copy embedded files to / - copyEmbeddedFiles(dir); + copyEmbeddedTextFile("echobase.properties", dir); + copyEmbeddedTextFile("startEchobase.bat", dir); + copyEmbeddedTextFile("startEchobase.sh", dir); + copyEmbeddedTextFile("README.txt", dir); +// Properties config = new Properties(); +// copyEmbeddedTextFile("echobase.properties", dir, config); + // copy war to / + File warLocation = model.getWarLocation(); FileUtils.copyFile(warLocation, new File(dir, warLocation.getName())); } catch (Exception eee) { @@ -365,38 +369,55 @@ } } -// public File getPilotsDirectory(File dataDirectory) { -// File driverDir = new File(dataDirectory, "drivers"); -// return driverDir; +// protected void copyEmbeddedFiles(File zipDirectory) throws IOException, URISyntaxException { +// +// // config to keep the echobase-embedded values (contains h2 and pg versions) +// Properties config = new Properties(); +// copyEmbeddedTextFile("echobase.properties", zipDirectory, config); +// +// copyEmbeddedTextFile("startEchobase.bat", zipDirectory, null); +// copyEmbeddedTextFile("startEchobase.sh", zipDirectory, null); +// copyEmbeddedTextFile("README.txt", zipDirectory, null); // } - protected void copyEmbeddedFiles(File zipDirectory) throws IOException, URISyntaxException { +// public void copyEmbeddedTextFile(String resourceName, +// File targetDirectory, +// Properties config) throws IOException { +// String resourcePath = EMBEDDED_PATH + resourceName; +// InputStream inputStream = getClass().getResourceAsStream(resourcePath); +// Preconditions.checkNotNull(inputStream, +// "could not find resource " + resourcePath); +// try { +// if (config != null) { +// config.load(inputStream); +// } +// File outputFile = new File(targetDirectory, resourceName); +// if (log.isInfoEnabled()) { +// log.info("Copy configuration to " + resourceName + " to " + outputFile); +// } +// OutputStreamWriter outputStream = new OutputStreamWriter( +// new FileOutputStream(outputFile), Charsets.UTF_8); +// try { +// if (config == null) { +// IOUtils.copy(inputStream, outputStream); +// } else { +// config.store(outputStream, null); +// } +// } finally { +// outputStream.close(); +// } +// } finally { +// inputStream.close(); +// } +// } - // config to keep the echobase-embedded values (contains h2 and pg versions) - Properties config = new Properties(); - copyEmbeddedFiles("echobase.properties", zipDirectory, config); - - copyEmbeddedFiles("startEchobase.bat", zipDirectory, null); - copyEmbeddedFiles("startEchobase.sh", zipDirectory, null); - copyEmbeddedFiles("README.txt", zipDirectory, null); - -// File driverDir = getPilotsDirectory(zipDirectory); -// FileUtil.createDirectoryIfNecessary(driverDir); -// copyEmbeddedFiles(DriverType.H2.getPilotFileName(getConfiguration()), driverDir, null); -// copyEmbeddedFiles(DriverType.POSTGRESQL.getPilotFileName(getConfiguration()), driverDir, null); - } - - public void copyEmbeddedFiles(String resourceName, - File targetDirectory, - Properties config) throws IOException { + public void copyEmbeddedTextFile(String resourceName, + File targetDirectory) throws IOException { String resourcePath = EMBEDDED_PATH + resourceName; InputStream inputStream = getClass().getResourceAsStream(resourcePath); Preconditions.checkNotNull(inputStream, "could not find resource " + resourcePath); try { - if (config != null) { - config.load(inputStream); - } File outputFile = new File(targetDirectory, resourceName); if (log.isInfoEnabled()) { log.info("Copy configuration to " + resourceName + " to " + outputFile); @@ -404,11 +425,7 @@ OutputStreamWriter outputStream = new OutputStreamWriter( new FileOutputStream(outputFile), Charsets.UTF_8); try { - if (config == null) { - IOUtils.copy(inputStream, outputStream); - } else { - config.store(outputStream, null); - } + IOUtils.copy(inputStream, outputStream); } finally { outputStream.close(); } @@ -441,20 +458,4 @@ IOUtils.closeQuietly(inputStream); } } - -// protected void importDb(EmbeddedApplicationConfiguration model, -// EchoBaseServiceContext newServiceContext, -// File exportZipFile, -// EchoBaseUser admin) throws IOException, TopiaException { -// ImportDbConfiguration importConfiguration = -// new ImportDbConfiguration(model, getLocale()); -// importConfiguration.getInput().setFile(exportZipFile); -// File importTempDir = new File(model.getWorkingDirectory(), "importDb"); -// importConfiguration.setWorkingDirectory(importTempDir); -// -// ImportDbService importDbService = -// newServiceContext.getService(ImportDbService.class); -// importDbService.importDb(importConfiguration, admin, false, true); -// } - } Added: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/DownloadDriver.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/DownloadDriver.java (rev 0) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/DownloadDriver.java 2012-09-03 19:23:14 UTC (rev 606) @@ -0,0 +1,72 @@ +package fr.ifremer.echobase.ui.actions.workingDb; + +import fr.ifremer.echobase.EchoBaseConfiguration; +import fr.ifremer.echobase.persistence.JdbcConfiguration; +import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +/** + * Download jdbc driver. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.1 + */ +public class DownloadDriver extends EchoBaseActionSupport { + + private static final long serialVersionUID = 1L; + + /** Input stream of the file to download. */ + protected transient InputStream inputStream; + + /** File name of the download. */ + protected String fileName; + + /** Length of the file to download. */ + protected long contentLength; + + /** Content type of the file to download. */ + protected String contentType; + + public void setFileName(String fileName) { + this.fileName = fileName; + } + + public InputStream getInputStream() { + return inputStream; + } + + public long getContentLength() { + return contentLength; + } + + public String getContentType() { + return contentType; + } + + public String getFileName() { + return fileName; + } + + @Override + public String execute() throws Exception { + + EchoBaseConfiguration configuration = + getEchoBaseApplicationContext().getConfiguration(); + + JdbcConfiguration dbConfiguration = getEchoBaseSession().getWorkingDbConfiguration(); + + fileName = + dbConfiguration.getDriverType().getPilotFileName(configuration); + + File file = new File(configuration.getLibDirectory(), fileName); + + contentType = "application/java-archive"; + contentLength = file.length(); + inputStream = new BufferedInputStream(new FileInputStream(file)); + return SUCCESS; + } +} Property changes on: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/DownloadDriver.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/workingDb/Information.java 2012-09-03 19:23:14 UTC (rev 606) @@ -27,8 +27,6 @@ import fr.ifremer.echobase.persistence.JdbcConfiguration; import fr.ifremer.echobase.ui.actions.EchoBaseActionSupport; -import java.io.File; - /** * Display a page to show connection details. * @@ -41,14 +39,14 @@ protected JdbcConfiguration dbConfiguration; - protected File jdbcPilot; + protected String pilotVersion; public JdbcConfiguration getDbConfiguration() { return dbConfiguration; } - public File getJdbcPilot() { - return jdbcPilot; + public String getPilotVersion() { + return pilotVersion; } @Override @@ -59,11 +57,9 @@ dbConfiguration = getEchoBaseSession().getWorkingDbConfiguration(); - String pilotName = - dbConfiguration.getDriverType().getPilotFileName(configuration); + pilotVersion = + dbConfiguration.getDriverType().getPilotVersion(configuration); - jdbcPilot = new File(configuration.getLibDirectory(), pilotName); - return SUCCESS; } } Modified: trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-ui/src/main/resources/config/struts-workingDb.xml 2012-09-03 19:23:14 UTC (rev 606) @@ -30,10 +30,10 @@ <result-types> - <result-type name="redirectWorkingDbConfiguration" + <result-type name="redirectToShowList" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"> <param name="actionName">showList</param> - <param name="namespace">workingDbConfiguration</param> + <param name="namespace">/workingDb</param> <param name="conf.topiaId">${conf.topiaId}</param> </result-type> @@ -60,7 +60,7 @@ <action name="create" method="createConf" class="fr.ifremer.echobase.ui.actions.workingDb.Create"> <result name="input" type="showList"/> - <result type="redirectWorkingDbConfiguration"/> + <result type="redirectToShowList"/> </action> <!-- Clone the workingDbConfiguration --> @@ -68,7 +68,7 @@ class="fr.ifremer.echobase.ui.actions.workingDb.Create"> <interceptor-ref name="prepareParamsStackLoggued"/> <result name="input" type="showList"/> - <result type="redirectWorkingDbConfiguration"/> + <result type="redirectToShowList"/> </action> <!-- Save the workingDbConfiguration --> @@ -76,7 +76,7 @@ class="fr.ifremer.echobase.ui.actions.workingDb.Create"> <interceptor-ref name="prepareParamsStackLoggued"/> <result name="input" type="showList"/> - <result type="redirectWorkingDbConfiguration"/> + <result type="redirectToShowList"/> </action> <!-- Confirm to delete the workingDbConfiguration --> @@ -91,7 +91,7 @@ class="fr.ifremer.echobase.ui.actions.workingDb.Delete"> <interceptor-ref name="prepareParamsStackLoggued"/> <result name="input" type="showList"/> - <result type="redirectWorkingDbConfiguration"/> + <result type="redirectToShowList"/> </action> <!-- Connect to selected workingDbConfiguration --> @@ -99,13 +99,16 @@ class="fr.ifremer.echobase.ui.actions.workingDb.Connect"> <interceptor-ref name="prepareParamsStackLoggued"/> <result name="input" type="showList"/> - <result type="redirectToHome"/> + <result type="redirectAction"> + <param name="actionName">information</param> + <param name="namespace">/workingDb</param> + </result> </action> <!-- Disconnect from current workingDbConfiguration --> <action name="disconnect" class="fr.ifremer.echobase.ui.actions.workingDb.Disconnect"> - <result type="showList"/> + <result type="redirectToShowList"/> </action> <!-- Get db modifications --> @@ -114,6 +117,16 @@ <result>/WEB-INF/jsp/workingDb/modifications.jsp</result> </action> + <!-- Download jdbc pilot driver application archive --> + <action name="downloadDriver" + class="fr.ifremer.echobase.ui.actions.workingDb.DownloadDriver"> + <result type="stream"> + <param name="contentType">${contentType}</param> + <param name="contentLength">${contentLength}</param> + <param name="contentDisposition">filename="${fileName}"</param> + </result> + </action> + </package> </struts> Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_en_GB.properties 2012-09-03 19:23:14 UTC (rev 606) @@ -34,8 +34,9 @@ echobase.action.toFrench=Use the french version echobase.action.usingEnglish=English version used echobase.action.usingFrench=French version used -echobase.action.workingDbconfiguration.connect= -echobase.action.workingDbconfiguration.disconnect= +echobase.action.workingDbconfiguration.connect=Connect +echobase.action.workingDbconfiguration.disconnect=Disconnect +echobase.action.workingDbconfiguration.downloadDriver=Télécharger le pilote jdbc echobase.common.acousticDensityUnit= echobase.common.acquisitionSoftwareVersionER60= echobase.common.acquisitionSoftwareVersionME70= @@ -83,7 +84,6 @@ echobase.common.jdbcDriver=Jdbc Driver name echobase.common.jdbcLogin= echobase.common.jdbcPassword= -echobase.common.jdbcPilotPath=Path to jdbc pilot echobase.common.jdbcUrl= echobase.common.keywords= echobase.common.lastModifiedDate= @@ -105,6 +105,7 @@ echobase.common.organisationLevelAcknowledgements= echobase.common.organisationReferences= echobase.common.password= +echobase.common.pilotVersion=Jdbc pilot version echobase.common.pingDutyCycle= echobase.common.platform= echobase.common.principalInvestigator= Modified: trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties =================================================================== --- trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-ui/src/main/resources/i18n/echobase-ui_fr_FR.properties 2012-09-03 19:23:14 UTC (rev 606) @@ -36,6 +36,7 @@ echobase.action.usingFrench=Version française utilisé echobase.action.workingDbconfiguration.connect=Sélectionner une base de travail echobase.action.workingDbconfiguration.disconnect=Se déconnecter +echobase.action.workingDbconfiguration.downloadDriver=Télécharger le pilote jdbc echobase.common.acousticDensityUnit=acousticDensityUnit echobase.common.acquisitionSoftwareVersionER60=acquisitionSoftwareVersion (ER60 instrument) echobase.common.acquisitionSoftwareVersionME70=acquisitionSoftwareVersion (ME70 instrument) @@ -83,7 +84,6 @@ echobase.common.jdbcDriver=Nom du pilote jdbc echobase.common.jdbcLogin=Login de connexion echobase.common.jdbcPassword=Mot de passe -echobase.common.jdbcPilotPath=Chemin du pilote jdbc echobase.common.jdbcUrl=Url de connexion echobase.common.keywords= echobase.common.lastModifiedDate= @@ -105,6 +105,7 @@ echobase.common.organisationLevelAcknowledgements= echobase.common.organisationReferences= echobase.common.password=Mot de passe +echobase.common.pilotVersion=Version du pilote jdbc echobase.common.pingDutyCycle=pingDutyCycle echobase.common.platform= echobase.common.principalInvestigator= Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/includes/header.jsp 2012-09-03 19:23:14 UTC (rev 606) @@ -126,20 +126,20 @@ </span> </s:a> </li> + <li> + <s:a action="configure" namespace="/embeddedApplication" + method="input" cssClass="appli"> + <span> + <s:text name="echobase.menu.createEmbeddedApplication"/> + </span> + </s:a> + </li> </s:if> <li> <s:a action="userList" namespace="/user" cssClass="user"> <span><s:text name="echobase.menu.users"/></span> </s:a> </li> - <li> - <s:a action="configure" namespace="/embeddedApplication" - method="input" cssClass="appli"> - <span> - <s:text name="echobase.menu.createEmbeddedApplication"/> - </span> - </s:a> - </li> </s:if> <s:else> <s:if test="%{workingDbSelected}"> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/information.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/information.jsp 2012-09-03 15:32:42 UTC (rev 605) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/workingDb/information.jsp 2012-09-03 19:23:14 UTC (rev 606) @@ -23,8 +23,35 @@ <%@page contentType="text/html" pageEncoding="UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="sj" uri="/struts-jquery-tags" %> -<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags" %> +<%--<style type="text/css">--%> +<%--label { background-color: white; color: black; }--%> +<%--</style>--%> +<script type="text/javascript"> + + $(document).ready(function () { + + $('label[id^="dbConfiguration"]').css({'background-color':'white', 'color':'black', 'padding-right':'2px', 'padding-left':'2px' }).click(function () { + var el = $(this)[0]; + if (/textarea/i.test(el.tagName) || (/input/i.test(el.tagName) && /text/i.test(el.type))) { + el.select(); + } else if (!!window.getSelection) { // FF, Safari, Chrome, Opera + var sel = window.getSelection(); + var range = document.createRange(); + range.selectNodeContents(el); + sel.removeAllRanges(); + sel.addRange(range); + } else if (!!document.selection) { // IE + document.selection.empty(); + var range = document.body.createTextRange(); + range.moveToElementText(el); + range.select(); + } + }); + + }); + +</script> <title><s:text name="echobase.title.connectToDbInformations"/></title> <br/> @@ -38,9 +65,28 @@ label='%{getText("echobase.common.jdbcPassword")}'/> <s:label key="dbConfiguration.driverType.driverClass.name" label='%{getText("echobase.common.jdbcDriver")}'/> - <s:label key="jdbcPilot" - label='%{getText("echobase.common.jdbcPilotPath")}'/> + <s:label key="pilotVersion" id='dbConfiguration_pilotVersion' + label='%{getText("echobase.common.pilotVersion")}'/> </fieldset> +<br/> +<s:form id="createForm" namespace="/workingDb"> + <ul class="toolbar floatLeft"> + <li> + <s:submit theme="simple" action="downloadDriver" + key="echobase.action.workingDbconfiguration.downloadDriver"/> + </li> + <li> + <s:submit theme="simple" action="disconnect" + key="echobase.action.workingDbconfiguration.disconnect"/> + </li> + </ul> +</s:form> +<%--<s:a namespace="/workingDb" action="downloadDriver">--%> +<%--<s:text name="echobase.action.workingDb.downloadDriver"/>--%> +<%--</s:a>--%> + + +
participants (1)
-
tchemit@users.forge.codelutin.com