Initial import.
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/admin/vre-manager@82276 82a268e6-3cf1-43bd-a215-b396298e98cf
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/vre-manager-3.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/gwt"/>
|
||||
<classpathentry including="**/*.java" kind="src" output="src/main/webapp/WEB-INF/classes" path="src/main/resources"/>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry including="**/*.java" kind="src" output="target/test-classes" path="src/test/resources"/>
|
||||
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER/GWT (5)"/>
|
||||
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/vre-manager-3.0.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
</classpath>
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>vre-manager</name>
|
||||
<comment>vre-manager project</comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.common.project.facet.core.builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.maven.ide.eclipse.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
|
||||
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
|
||||
<nature>org.maven.ide.eclipse.maven2Nature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
|
||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||
<nature>com.google.gwt.eclipse.core.gwtNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src/main/webapp" />
|
||||
<classpathentry kind="con"
|
||||
path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER" />
|
||||
<classpathentry kind="con"
|
||||
path="org.eclipse.wst.jsdt.launching.WebProject">
|
||||
<attributes>
|
||||
<attribute name="hide" value="true" />
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con"
|
||||
path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary" />
|
||||
<classpathentry kind="output" path="" />
|
||||
</classpath>
|
|
@ -0,0 +1,3 @@
|
|||
#Thu Jun 16 10:18:26 CEST 2011
|
||||
eclipse.preferences.version=1
|
||||
filesCopiedToWebInfLib=
|
|
@ -0,0 +1,5 @@
|
|||
eclipse.preferences.version=1
|
||||
jarsExcludedFromWebInfLib=
|
||||
lastWarOutDir=/Users/massi/Documents/workspace/vre-manager/target/vre-manager-3.0.0-SNAPSHOT
|
||||
warSrcDir=src/main/webapp
|
||||
warSrcDirIsOutput=false
|
|
@ -0,0 +1,5 @@
|
|||
#Thu Jun 16 11:14:17 CEST 2011
|
||||
eclipse.preferences.version=1
|
||||
entryPointModules=
|
||||
filesCopiedToWebInfLib=gwt-servlet.jar
|
||||
gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBWy13YXIgc3JjL21haW4vd2ViYXBwXV0+PC9leHRyYS1hcmdzPjx2bS1hcmdzPjwhW0NEQVRBWy1YbXg1MTJtXV0+PC92bS1hcmdzPjxlbnRyeS1wb2ludC1tb2R1bGU+Y29tLmNvbXBhbnkuU29tZU1vZHVsZTwvZW50cnktcG9pbnQtbW9kdWxlPjwvZ3d0LWNvbXBpbGUtc2V0dGluZ3M+
|
|
@ -0,0 +1,6 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
|
@ -0,0 +1,8 @@
|
|||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
|
@ -0,0 +1,4 @@
|
|||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
resolveWorkspaceProjects=true
|
||||
version=1
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project-modules id="moduleCoreId" project-version="1.5.0">
|
||||
<wb-module deploy-name="${module}">
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
<property name="java-output-path" value="/${module}/target/www/WEB-INF/classes"/>
|
||||
<property name="context-root" value="vre-manager"/>
|
||||
</wb-module>
|
||||
</project-modules>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<faceted-project>
|
||||
<fixed facet="wst.jsdt.web"/>
|
||||
<installed facet="jst.web" version="2.3"/>
|
||||
<installed facet="wst.jsdt.web" version="1.0"/>
|
||||
<installed facet="java" version="1.6"/>
|
||||
</faceted-project>
|
|
@ -0,0 +1 @@
|
|||
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
|
|
@ -0,0 +1,2 @@
|
|||
disabled=06target
|
||||
eclipse.preferences.version=1
|
|
@ -0,0 +1,9 @@
|
|||
#Thu Sep 02 10:42:12 CEST 2010
|
||||
activeProfiles=
|
||||
eclipse.preferences.version=1
|
||||
fullBuildGoals=process-test-resources
|
||||
includeModules=false
|
||||
resolveWorkspaceProjects=true
|
||||
resourceFilterGoals=process-resources resources\\:testResources
|
||||
skipCompilerPlugin=true
|
||||
version=1
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gwt.eclipse.core.launch.gwtJUnit">
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.LOG_LEVEL" value="INFO"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.NOT_HEADLESS" value="false"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.OUT_DIR" value="www-test"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.STANDARDS_MODE" value="false"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.STYLE" value="OBFUSCATED"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.WEB_MODE" value="false"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/vre-manager/src/test/java/org/gcube/portlets/admin/vredeployment/client/GwtTestVREDeploymentApp.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gdt.eclipse.maven.mavenClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.gcube.portlets.admin.vredeployment.client.GwtTestVREDeploymentApp"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="vre-manager"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="com.google.gwt.eclipse.core.launch.gwtJUnit">
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.LOG_LEVEL" value="INFO"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.NOT_HEADLESS" value="false"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.OUT_DIR" value="www-test"/>
|
||||
<booleanAttribute key="com.google.gwt.eclipse.core.STANDARDS_MODE" value="false"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.STYLE" value="OBFUSCATED"/>
|
||||
<stringAttribute key="com.google.gwt.eclipse.core.WEB_MODE" value="true"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/vre-manager/src/test/java/org/gcube/portlets/admin/vredeployment/client/GwtTestVREDeploymentApp.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="com.google.gdt.eclipse.maven.mavenClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.gcube.portlets.admin.vredeployment.client.GwtTestVREDeploymentApp"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="vre-manager"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,8 @@
|
|||
To install the VRE Deployment portlet you need the following requirements:
|
||||
|
||||
* The Portlet WAR.
|
||||
* The Dependecies JARs as declared in the Service Profile.
|
||||
|
||||
First of all you need a Portal properly configured and running.
|
||||
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
gCube System - License
|
||||
------------------------------------------------------------
|
||||
|
||||
The gCube/gCore software is licensed as Free Open Source software conveying to the EUPL (http://ec.europa.eu/idabc/eupl).
|
||||
The software and documentation is provided by its authors/distributors "as is" and no expressed or
|
||||
implied warranty is given for its use, quality or fitness for a particular case.
|
|
@ -0,0 +1,5 @@
|
|||
Mantainers
|
||||
-------
|
||||
|
||||
* Massimiliano Assante (assante@isti.cnr.it), CNR Pisa,
|
||||
Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo".
|
|
@ -0,0 +1,53 @@
|
|||
The gCube System - VRE Deployment portlet
|
||||
------------------------------------------------------------
|
||||
|
||||
This work is partially funded by the European Commission in the
|
||||
context of the D4Science project (www.d4science.eu), under the 1st call of FP7 IST priority.
|
||||
|
||||
|
||||
Authors
|
||||
-------
|
||||
|
||||
* Massimiliano Assante (assante@isti.cnr.it), CNR Pisa,
|
||||
Istituto di Scienza e Tecnologie dell'Informazione "A. Faedo".
|
||||
|
||||
|
||||
Version and Release Date
|
||||
------------------------
|
||||
|
||||
v. 3.0.0, 14/09/2011
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
|
||||
|
||||
Download information
|
||||
--------------------
|
||||
|
||||
Source code is available from SVN:
|
||||
https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/VREDeployment
|
||||
|
||||
|
||||
Binaries can be downloaded from:
|
||||
http://software.d4science.research-infrastructures.eu/
|
||||
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
Documentation is available on-line from the Projects Documentation Wiki:
|
||||
|
||||
https://gcube.wiki.gcube-system.org/gcube/index.php/VRE_Administration#VRE_Approval
|
||||
|
||||
|
||||
|
||||
Licensing
|
||||
---------
|
||||
|
||||
This software is licensed under the terms you may find in the file named "LICENSE" in this directory.
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
<ReleaseNotes>
|
||||
<Changeset component="org.gcube.portlets-admin.vre-deployment.4-1-0" date="2013-04-19">
|
||||
<Change>Minor fix for SA generation</Change>
|
||||
</Changeset>
|
||||
<Changeset component="org.gcube.portlets-admin.vre-deployment.4-0-0" date="2013-04-19">
|
||||
<Change>Put vre id in session and no VRE Object</Change>
|
||||
</Changeset>
|
||||
<Changeset component="org.gcube.portlets-admin.vre-deployment.3-2-0" date="2012-09-21">
|
||||
<Change>Adapted to new resource manager</Change>
|
||||
</Changeset>
|
||||
</ReleaseNotes>
|
|
@ -0,0 +1,48 @@
|
|||
<assembly
|
||||
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
|
||||
<id>servicearchive</id>
|
||||
<formats>
|
||||
<format>tar.gz</format>
|
||||
</formats>
|
||||
<baseDirectory>/</baseDirectory>
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>${distroDirectory}</directory>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
<useDefaultExcludes>true</useDefaultExcludes>
|
||||
<includes>
|
||||
<include>README</include>
|
||||
<include>LICENSE</include>
|
||||
<include>INSTALL</include>
|
||||
<include>MAINTAINERS</include>
|
||||
<include>changelog.xml</include>
|
||||
</includes>
|
||||
<fileMode>755</fileMode>
|
||||
<filtered>true</filtered>
|
||||
</fileSet>
|
||||
<fileSet>
|
||||
<directory>target/apidocs</directory>
|
||||
<outputDirectory>/${artifactId}/doc/api</outputDirectory>
|
||||
<useDefaultExcludes>true</useDefaultExcludes>
|
||||
<fileMode>755</fileMode>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
<files>
|
||||
<file>
|
||||
<source>${distroDirectory}/profile.xml</source>
|
||||
<outputDirectory>./</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
</file>
|
||||
<file>
|
||||
<source>target/${build.finalName}.war</source>
|
||||
<outputDirectory>/${artifactId}</outputDirectory>
|
||||
</file>
|
||||
<file>
|
||||
<source>${distroDirectory}/svnpath.txt</source>
|
||||
<outputDirectory>/${artifactId}</outputDirectory>
|
||||
<filtered>true</filtered>
|
||||
</file>
|
||||
</files>
|
||||
</assembly>
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<ID></ID>
|
||||
<Type>Service</Type>
|
||||
<Profile>
|
||||
<Description>${description}</Description>
|
||||
<Class>PortletUser</Class>
|
||||
<Name>${artifactId}</Name>
|
||||
<Version>${version}</Version>
|
||||
<Packages>
|
||||
<Software>
|
||||
<Name>${artifactId}</Name>
|
||||
<Version>${version}</Version>
|
||||
<MavenCoordinates>
|
||||
<groupId>${groupId}</groupId>
|
||||
<artifactId>${artifactId}</artifactId>
|
||||
<version>${version}</version>
|
||||
</MavenCoordinates>
|
||||
<Files>
|
||||
<File>target/${build.finalName}.war</File>
|
||||
</Files>
|
||||
</Software>
|
||||
</Packages>
|
||||
</Profile>
|
||||
</Resource>
|
|
@ -0,0 +1 @@
|
|||
${scm.url}
|
|
@ -0,0 +1,229 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<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>
|
||||
<parent>
|
||||
<artifactId>maven-parent</artifactId>
|
||||
<groupId>org.gcube.tools</groupId>
|
||||
<version>1.0.0</version>
|
||||
<relativePath />
|
||||
</parent>
|
||||
<groupId>org.gcube.portlets.admin</groupId>
|
||||
<artifactId>vre-manager</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
<name>VRE Definition Portlet</name>
|
||||
<description>
|
||||
gCube VRE Definition Portlet shows a Wizard to create VREs.
|
||||
</description>
|
||||
<scm>
|
||||
<connection>scm:svn:http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/${project.artifactId}</connection>
|
||||
<developerConnection>scm:https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/${project.artifactId}</developerConnection>
|
||||
<url>http://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/admin/${project.artifactId}</url>
|
||||
</scm>
|
||||
<properties>
|
||||
<!-- Convenience property to set the GWT version -->
|
||||
<gwtVersion>2.5.1</gwtVersion>
|
||||
<distroDirectory>distro</distroDirectory>
|
||||
<!-- GWT needs at least java 1.6 -->
|
||||
<maven.compiler.source>1.6</maven.compiler.source>
|
||||
<maven.compiler.target>1.6</maven.compiler.target>
|
||||
<webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
|
||||
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
</properties>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.gcube.distribution</groupId>
|
||||
<artifactId>maven-portal-bom</artifactId>
|
||||
<version>LATEST</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- This dependency is needed to use GWT UI BInder without old Xerces
|
||||
version of gCore complaining -->
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
<artifactId>xercesImpl</artifactId>
|
||||
<version>2.9.1</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.gwt</groupId>
|
||||
<artifactId>gwt-user</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.applicationsupportlayer</groupId>
|
||||
<artifactId>aslcore</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.applicationsupportlayer</groupId>
|
||||
<artifactId>aslvre</artifactId>
|
||||
<version>[5.0.0-SNAPSHOT, 6.0.0-SNAPSHOT)</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.portlets.user</groupId>
|
||||
<artifactId>gcube-widgets</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.portal</groupId>
|
||||
<artifactId>custom-portal-handler</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.core</groupId>
|
||||
<artifactId>common-scope-maps</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.vremanagement</groupId>
|
||||
<artifactId>vremodeler-client-library</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.sencha.gxt</groupId>
|
||||
<artifactId>gxt</artifactId>
|
||||
<version>2.2.5</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.dvos</groupId>
|
||||
<artifactId>usermanagement-core</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.liferay.portal</groupId>
|
||||
<artifactId>portal-service</artifactId>
|
||||
<version>6.0.6</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.portlet</groupId>
|
||||
<artifactId>portlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<!-- Generate compiled stuff in the folder used for developing mode -->
|
||||
<outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory>
|
||||
|
||||
<plugins>
|
||||
<!-- GWT Maven Plugin -->
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>gwt-maven-plugin</artifactId>
|
||||
<version>${gwtVersion}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
<!-- <goal>test</goal> -->
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<!-- Plugin configuration. There are many available options, see gwt-maven-plugin
|
||||
documentation at codehaus.org -->
|
||||
<configuration>
|
||||
<runTarget>VREDefinition.html</runTarget>
|
||||
<hostedWebapp>${webappDirectory}</hostedWebapp>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- Copy static web files before executing gwt:run -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>2.1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>exploded</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<webappDirectory>${webappDirectory}</webappDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<configuration>
|
||||
<source>1.6</source>
|
||||
<target>1.6</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- SA Plugin -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<version>2.2</version>
|
||||
<configuration>
|
||||
<descriptors>
|
||||
<descriptor>${distroDirectory}/descriptor.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>servicearchive</id>
|
||||
<phase>install</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>2.5</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-profile</id>
|
||||
<phase>install</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>target</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${distroDirectory}</directory>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>profile.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,61 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client;
|
||||
|
||||
import org.gcube.portlets.admin.vredeployment.client.presenter.Presenter;
|
||||
import org.gcube.portlets.admin.vredeployment.client.presenter.VREDeploymentPresenter;
|
||||
import org.gcube.portlets.admin.vredeployment.client.view.VREDeploymentView;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeEvent;
|
||||
import com.google.gwt.event.logical.shared.ValueChangeHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.History;
|
||||
import com.google.gwt.user.client.ui.HasWidgets;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
|
||||
* @version May 2011 (0.1)
|
||||
*
|
||||
* This <class>AppController</class> contains the view transition logic,
|
||||
* to handle logic that is not specific to any presenter and instead resides at the application layer
|
||||
*/
|
||||
public class AppController implements Presenter, ValueChangeHandler<String> {
|
||||
private final HandlerManager eventBus;
|
||||
private final VREDeploymentServiceAsync rpcService;
|
||||
private HasWidgets container;
|
||||
Presenter presenter;
|
||||
|
||||
public AppController(VREDeploymentServiceAsync rpcService, HandlerManager eventBus) {
|
||||
this.eventBus = eventBus;
|
||||
this.rpcService = rpcService;
|
||||
bind();
|
||||
}
|
||||
|
||||
private void bind() {
|
||||
History.addValueChangeHandler(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void go(HasWidgets container) {
|
||||
this.container = container;
|
||||
History.fireCurrentHistoryState();
|
||||
}
|
||||
@Override
|
||||
public void onValueChange(ValueChangeEvent<String> event) {
|
||||
presenter = new VREDeploymentPresenter(rpcService, eventBus, new VREDeploymentView());
|
||||
if (presenter != null) {
|
||||
GWT.log("Container=null?"+(container==null));
|
||||
presenter.go(this.container);
|
||||
}
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void doAddComment(String comment, String workflowid) {
|
||||
// presenter.doAddComment(comment, workflowid);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void doForward(WorkflowDocument wfDoc, String toStepLabel) {
|
||||
// presenter.doForward(wfDoc, toStepLabel);
|
||||
// }
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client;
|
||||
|
||||
import com.google.gwt.core.client.EntryPoint;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
|
||||
/**
|
||||
* Entry point classes define <code>onModuleLoad()</code>.
|
||||
*/
|
||||
public class VREDeploymentApp implements EntryPoint {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public static final String CONTAINER_DIV = "DeploymentView";
|
||||
|
||||
/**
|
||||
* This is the entry point method.
|
||||
*/
|
||||
public void onModuleLoad() {
|
||||
VREDeploymentServiceAsync rpcService = GWT.create(VREDeploymentService.class);
|
||||
HandlerManager eventBus = new HandlerManager(null);
|
||||
AppController appViewer = new AppController(rpcService, eventBus);
|
||||
appViewer.go(RootPanel.get(CONTAINER_DIV));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.google.gwt.user.client.rpc.RemoteService;
|
||||
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
|
||||
import org.gcube.portlets.admin.vredeployment.shared.VREDefinitionBean;
|
||||
/**
|
||||
* The client side stub for the RPC service.
|
||||
*/
|
||||
@RemoteServiceRelativePath("vreDeploymentServlet")
|
||||
public interface VREDeploymentService extends RemoteService {
|
||||
ArrayList<VREDefinitionBean> getVREDefinitions();
|
||||
|
||||
boolean doApprove(String epr);
|
||||
|
||||
boolean doRemove(String epr);
|
||||
|
||||
boolean doEdit(String epr);
|
||||
|
||||
String doViewDetails(String epr);
|
||||
|
||||
boolean doViewReport(String epr);
|
||||
|
||||
String getHTMLReport(String epr) ;
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.admin.vredeployment.shared.VREDefinitionBean;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
|
||||
/**
|
||||
* The async counterpart of <code>VREDeploymentService</code>.
|
||||
*/
|
||||
public interface VREDeploymentServiceAsync {
|
||||
void getVREDefinitions(AsyncCallback<ArrayList<VREDefinitionBean>> callback);
|
||||
|
||||
void doApprove(String epr, AsyncCallback<Boolean> callback);
|
||||
|
||||
void doRemove(String epr, AsyncCallback<Boolean> callback);
|
||||
|
||||
void doEdit(String epr, AsyncCallback<Boolean> callback);
|
||||
|
||||
void doViewDetails(String epr, AsyncCallback<String> callback);
|
||||
|
||||
void doViewReport(String epr, AsyncCallback<Boolean> callback);
|
||||
|
||||
void getHTMLReport(String epr, AsyncCallback<String> callback);
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client.presenter;
|
||||
|
||||
import com.google.gwt.user.client.ui.HasWidgets;
|
||||
|
||||
public interface Presenter {
|
||||
public void go(HasWidgets container);
|
||||
// public void doAddComment(String comment, String workflowid);
|
||||
// public void doForward(WorkflowDocument wfDoc, String toStepLabel);
|
||||
}
|
|
@ -0,0 +1,323 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client.presenter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.admin.vredeployment.client.VREDeploymentServiceAsync;
|
||||
import org.gcube.portlets.admin.vredeployment.client.view.Display;
|
||||
import org.gcube.portlets.admin.vredeployment.shared.VREDefinitionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
|
||||
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
|
||||
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
|
||||
import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Html;
|
||||
import com.extjs.gxt.ui.client.widget.Info;
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.HasWidgets;
|
||||
import com.google.gwt.user.client.ui.ScrollPanel;
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante (assante@isti.cnr.it)
|
||||
*
|
||||
*/
|
||||
public class VREDeploymentPresenter implements Presenter {
|
||||
private final VREDeploymentServiceAsync rpcService;
|
||||
private final HandlerManager eventBus;
|
||||
private final Display display;
|
||||
String location = null;
|
||||
/**
|
||||
*
|
||||
* @param rpcService
|
||||
* @param eventBus
|
||||
* @param display
|
||||
*/
|
||||
public VREDeploymentPresenter(VREDeploymentServiceAsync rpcService, HandlerManager eventBus, Display display) {
|
||||
this.rpcService = rpcService;
|
||||
this.eventBus = eventBus;
|
||||
this.display = display;
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
public void bind() {
|
||||
///*** BUTTONS & Menu
|
||||
//VIEW listener
|
||||
SelectionListener viewsl = new SelectionListener<ComponentEvent>() {
|
||||
public void componentSelected(ComponentEvent ce) {
|
||||
String vreEPR = display.getGridSelectionModel().getSelectedItem().getId();
|
||||
String vreName = display.getGridSelectionModel().getSelectedItem().getName();
|
||||
doViewDetails(vreEPR, vreName);
|
||||
}
|
||||
};
|
||||
display.getViewButton().addSelectionListener(viewsl);
|
||||
display.getViewMenu().addSelectionListener(viewsl);
|
||||
|
||||
//APPROVE
|
||||
SelectionListener approvesl = new SelectionListener<ComponentEvent>() {
|
||||
public void componentSelected(ComponentEvent ce) {
|
||||
String vreEPR = display.getGridSelectionModel().getSelectedItem().getId();
|
||||
String vreName = display.getGridSelectionModel().getSelectedItem().getName();
|
||||
doApprove(vreEPR, vreName);
|
||||
}
|
||||
};
|
||||
display.getApproveButton().addSelectionListener(approvesl);
|
||||
display.getApproveMenu().addSelectionListener(approvesl);
|
||||
|
||||
// EDIT
|
||||
SelectionListener editsl = new SelectionListener<ComponentEvent>() {
|
||||
public void componentSelected(ComponentEvent ce) {
|
||||
String vreEPR = display.getGridSelectionModel().getSelectedItem().getId();
|
||||
String vreName = display.getGridSelectionModel().getSelectedItem().getName();
|
||||
doEdit(vreEPR, vreName);
|
||||
}
|
||||
};
|
||||
display.getEditButton().addSelectionListener(editsl);
|
||||
display.getEditMenu().addSelectionListener(editsl);
|
||||
|
||||
// REFRESH
|
||||
display.getRefreshButton().addSelectionListener( new SelectionListener<ButtonEvent>() {
|
||||
public void componentSelected(ButtonEvent ce) {
|
||||
fetchVREDefinitions();
|
||||
}
|
||||
});
|
||||
|
||||
// REMOVE
|
||||
SelectionListener removesl = new SelectionListener<ComponentEvent>() {
|
||||
public void componentSelected(ComponentEvent ce) {
|
||||
String vreEPR = display.getGridSelectionModel().getSelectedItem().getId();
|
||||
String vreName = display.getGridSelectionModel().getSelectedItem().getName();
|
||||
doRemove(vreEPR, vreName);
|
||||
}
|
||||
};
|
||||
display.getRemoveButton().addSelectionListener(removesl);
|
||||
display.getRemoveMenu().addSelectionListener(removesl);
|
||||
|
||||
// VIEW REPORT
|
||||
SelectionListener viewreportSL = new SelectionListener<ComponentEvent>() {
|
||||
public void componentSelected(ComponentEvent ce) {
|
||||
String vreEPR = display.getGridSelectionModel().getSelectedItem().getId();
|
||||
String vreName = display.getGridSelectionModel().getSelectedItem().getName();
|
||||
doViewReport(vreEPR, vreName);
|
||||
}
|
||||
};
|
||||
display.getViewReportButton().addSelectionListener(viewreportSL);
|
||||
display.getViewReportMenu().addSelectionListener(viewreportSL);
|
||||
|
||||
// VIEW TEXTUAL REPORT
|
||||
SelectionListener viewTreportSL = new SelectionListener<ComponentEvent>() {
|
||||
public void componentSelected(ComponentEvent ce) {
|
||||
String vreEPR = display.getGridSelectionModel().getSelectedItem().getId();
|
||||
String vreName = display.getGridSelectionModel().getSelectedItem().getName();
|
||||
doViewTextualReport(vreEPR, vreName);
|
||||
}
|
||||
};
|
||||
display.getViewTextualReportButton().addSelectionListener(viewTreportSL);
|
||||
|
||||
///*** GRID
|
||||
display.getGridSelectionModel().addSelectionChangedListener(new SelectionChangedListener<VREDefinitionBean>() {
|
||||
public void selectionChanged(SelectionChangedEvent<VREDefinitionBean> event) {
|
||||
if (event.getSelectedItem() != null)
|
||||
display.setGridContextMenu(event.getSelectedItem().getStatus());
|
||||
display.enableActionButtons(event.getSelectedItem());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
/**
|
||||
* go method
|
||||
*/
|
||||
@Override
|
||||
public void go(HasWidgets container) {
|
||||
bind();
|
||||
container.clear();
|
||||
container.add(display.asWidget());
|
||||
fetchVREDefinitions();
|
||||
}
|
||||
/**
|
||||
* fetch all the workflow documents belongin to this user
|
||||
*/
|
||||
private void fetchVREDefinitions() {
|
||||
display.maskCenterPanel("Loading VRE definitions, please wait", true);
|
||||
rpcService.getVREDefinitions(new AsyncCallback<ArrayList<VREDefinitionBean>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<VREDefinitionBean> docs) {
|
||||
display.maskCenterPanel("", false);
|
||||
display.setData(docs);
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to get VRE list from service " + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void doApprove(String vreEPR, String vreName) {
|
||||
display.maskCenterPanel("Approving VRE " + vreName +", please wait", true);
|
||||
rpcService.doApprove(vreEPR, new AsyncCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
loadDeployer();
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to approve VRE" + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
private void doRemove(final String vreEPR, final String vreName) {
|
||||
MessageBox.confirm("Confirm", "Are you sure you want to remove "+ vreName +"?", new Listener<MessageBoxEvent>() {
|
||||
public void handleEvent(MessageBoxEvent ce) {
|
||||
if (ce.getButtonClicked().getText().equals("Yes")) {
|
||||
display.maskCenterPanel("Removing VRE " + vreName +", please wait", true);
|
||||
rpcService.doRemove(vreEPR, new AsyncCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
fetchVREDefinitions();
|
||||
Info.display("VRE Removal", "The '{0}' VRE was successfully removed", vreName);
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to remove VRE" + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void doViewReport(String vreEPR, String vreName) {
|
||||
display.maskCenterPanel("Switching to VRE report for " + vreName +", please wait", true);
|
||||
rpcService.doViewReport(vreEPR, new AsyncCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
loadDeployer();
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to view report VRE" + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void doViewTextualReport(String vreEPR, String vreName) {
|
||||
display.maskCenterPanel("Fetching textual VRE report for " + vreName +", please wait", true);
|
||||
rpcService.getHTMLReport(vreEPR, new AsyncCallback<String>() {
|
||||
@Override
|
||||
public void onSuccess(String reportHTML) {
|
||||
final com.extjs.gxt.ui.client.widget.Window window = new com.extjs.gxt.ui.client.widget.Window();
|
||||
window.setSize(700, 550);
|
||||
window.setPlain(true);
|
||||
window.setModal(true);
|
||||
window.setBlinkModal(true);
|
||||
window.setHeading("Textual Report");
|
||||
|
||||
ContentPanel cp = new ContentPanel();
|
||||
cp.setHeaderVisible(false);
|
||||
|
||||
ScrollPanel scroller = new ScrollPanel();
|
||||
scroller.setSize("700", "550");
|
||||
scroller.add(new Html(reportHTML));
|
||||
|
||||
cp.add(scroller);
|
||||
|
||||
cp.setLayout(new FitLayout());
|
||||
|
||||
window.add(cp);
|
||||
window.setLayout(new FitLayout());
|
||||
window.addButton(new Button("Close", new SelectionListener<ButtonEvent>() {
|
||||
@Override
|
||||
public void componentSelected(ButtonEvent ce) {
|
||||
window.hide();
|
||||
}
|
||||
}));
|
||||
|
||||
cp.layout();
|
||||
display.maskCenterPanel("", false);
|
||||
window.show();
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to view report VRE" + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void doEdit(String vreEPR, String vreName) {
|
||||
display.maskCenterPanel("Switching to edit mode for " + vreName +", please wait", true);
|
||||
rpcService.doEdit(vreEPR, new AsyncCallback<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
loadDefinition();
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to edit VRE" + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void doViewDetails(String vreEPR, String vreName) {
|
||||
display.maskCenterPanel("Retrieving details for VRE " + vreName +", please wait", true);
|
||||
rpcService.doViewDetails(vreEPR, new AsyncCallback<String>() {
|
||||
@Override
|
||||
public void onSuccess(String html2Show) {
|
||||
display.maskCenterPanel("", false);
|
||||
display.showDetailsDialog(html2Show);
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable arg0) {
|
||||
display.maskCenterPanel("", false);
|
||||
Window.alert("Failed to get VRE details" + arg0.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect to VRE Deployer Portlet
|
||||
*/
|
||||
public void loadDeployer(){
|
||||
getUrl();
|
||||
location += "/../vre-deployer";
|
||||
Window.open(location, "_self", "");
|
||||
}
|
||||
/**
|
||||
* Redirect to VRE Definition Portlet
|
||||
*/
|
||||
public void loadDefinition(){
|
||||
getUrl();
|
||||
location += "/../vre-definition";
|
||||
Window.open(location, "_self", "");
|
||||
}
|
||||
/**
|
||||
* Get URL from browser
|
||||
*/
|
||||
public native void getUrl()/*-{
|
||||
this.@org.gcube.portlets.admin.vredeployment.client.presenter.VREDeploymentPresenter::location = $wnd.location.href;
|
||||
}-*/;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client.view;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredeployment.shared.VREDefinitionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
|
||||
import com.extjs.gxt.ui.client.widget.menu.Menu;
|
||||
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public interface Display {
|
||||
void maskCenterPanel(String message, boolean mask);
|
||||
void setData(List<VREDefinitionBean> data);
|
||||
Widget asWidget();
|
||||
void updateSize();
|
||||
void enableActionButtons(VREDefinitionBean selectedItem);
|
||||
void showDetailsDialog(String html2Show);
|
||||
void setGridContextMenu(String vreStatus) ;
|
||||
|
||||
Button getViewButton();
|
||||
Button getEditButton();
|
||||
Button getViewReportButton();
|
||||
Button getRemoveButton();
|
||||
Button getApproveButton();
|
||||
Button getRefreshButton();
|
||||
Button getViewTextualReportButton();
|
||||
|
||||
|
||||
MenuItem getViewMenu();
|
||||
MenuItem getEditMenu();
|
||||
MenuItem getViewReportMenu();
|
||||
MenuItem getRemoveMenu();
|
||||
MenuItem getApproveMenu();
|
||||
|
||||
GridSelectionModel<VREDefinitionBean> getGridSelectionModel();
|
||||
}
|
|
@ -0,0 +1,349 @@
|
|||
package org.gcube.portlets.admin.vredeployment.client.view;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredeployment.client.VREDeploymentApp;
|
||||
import org.gcube.portlets.admin.vredeployment.shared.VREDefinitionBean;
|
||||
import org.gcube.portlets.user.gcubewidgets.client.GCubePanel;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.Style.Scroll;
|
||||
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
||||
import com.extjs.gxt.ui.client.fx.FxConfig;
|
||||
import com.extjs.gxt.ui.client.store.GroupingStore;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Dialog;
|
||||
import com.extjs.gxt.ui.client.widget.Html;
|
||||
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
||||
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
||||
import com.extjs.gxt.ui.client.widget.grid.Grid;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GridGroupRenderer;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GroupColumnData;
|
||||
import com.extjs.gxt.ui.client.widget.grid.GroupingView;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.extjs.gxt.ui.client.widget.menu.Menu;
|
||||
import com.extjs.gxt.ui.client.widget.menu.MenuItem;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class VREDeploymentView extends Composite implements Display {
|
||||
private GCubePanel mainPanel;
|
||||
private final ContentPanel tablePanel;
|
||||
|
||||
private GroupingStore<VREDefinitionBean> store;
|
||||
private Grid<VREDefinitionBean> grid;
|
||||
|
||||
private Button viewButton;
|
||||
private Button editButton;
|
||||
private Button removeButton;
|
||||
private Button approveButton;
|
||||
private Button viewReportButton;
|
||||
private Button refreshButton;
|
||||
private Button viewTextualReportButton;
|
||||
|
||||
private MenuItem viewMenu;
|
||||
private MenuItem editMenu;
|
||||
private MenuItem removeMenu;
|
||||
private MenuItem approveMenu;
|
||||
private MenuItem viewReportMenu;
|
||||
|
||||
|
||||
private Menu gridMenu;
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public VREDeploymentView() {
|
||||
mainPanel = new GCubePanel("VRE Manager", "https://gcube.wiki.gcube-system.org/gcube/index.php/VRE_Administration#VRE_Approval");
|
||||
|
||||
tablePanel = new ContentPanel(new FitLayout());
|
||||
tablePanel.setHeaderVisible(false);
|
||||
tablePanel.setFrame(false);
|
||||
tablePanel.setStyleAttribute("Margin", "5px");
|
||||
mainPanel.add(tablePanel);
|
||||
|
||||
store = new GroupingStore<VREDefinitionBean>();
|
||||
|
||||
GroupingView view = new GroupingView();
|
||||
view.setShowGroupedColumn(false);
|
||||
view.setForceFit(true);
|
||||
final ColumnModel cm = getVREListColumnModel();
|
||||
view.setGroupRenderer(new GridGroupRenderer() {
|
||||
public String render(GroupColumnData data) {
|
||||
String f = cm.getColumnById(data.field).getHeader();
|
||||
String l = data.models.size() == 1 ? "VRE" : "VREs";
|
||||
return f + ": " + data.group + " (" + data.models.size() + " " + l + ")";
|
||||
}
|
||||
});
|
||||
grid = new Grid<VREDefinitionBean>(store, cm);
|
||||
grid.setView(view);
|
||||
|
||||
viewMenu = new MenuItem("View details");
|
||||
viewMenu.setIconStyle("view-icon");
|
||||
editMenu = new MenuItem("Edit");
|
||||
editMenu.setIconStyle("edit-icon");
|
||||
approveMenu = new MenuItem("Approve");
|
||||
approveMenu.setIconStyle("approve-icon");
|
||||
viewReportMenu = new MenuItem("View Report");
|
||||
viewReportMenu.setIconStyle("viewreport-icon");
|
||||
removeMenu = new MenuItem("Remove from infrastructure");
|
||||
removeMenu.setIconStyle("remove-icon");
|
||||
|
||||
gridMenu = new Menu();
|
||||
grid.setContextMenu(gridMenu);
|
||||
|
||||
viewButton = new Button("View details");
|
||||
editButton = new Button("Edit");
|
||||
approveButton = new Button("Approve");
|
||||
viewReportButton = new Button("View Report");
|
||||
removeButton = new Button("Remove from infrastructure");
|
||||
refreshButton = new Button("Refresh");
|
||||
viewTextualReportButton = new Button("View Text-Only Report");
|
||||
|
||||
viewButton.setEnabled(false);
|
||||
editButton.setEnabled(false);
|
||||
approveButton.setEnabled(false);
|
||||
viewReportButton.setEnabled(false);
|
||||
removeButton.setEnabled(false);
|
||||
refreshButton.setEnabled(true);
|
||||
viewTextualReportButton.setEnabled(false);
|
||||
|
||||
|
||||
|
||||
initWidget(mainPanel);
|
||||
updateSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* display the list of wfDocuments
|
||||
*/
|
||||
private void displayDocuments() {
|
||||
tablePanel.removeAll();
|
||||
grid.setStyleAttribute("borderTop", "none");
|
||||
grid.setAutoExpandColumn("name");
|
||||
grid.setBorders(true);
|
||||
grid.setStripeRows(true);
|
||||
grid.getView().setForceFit(true);
|
||||
|
||||
ContentPanel gridPanel = new ContentPanel(new FitLayout());
|
||||
gridPanel.setHeaderVisible(false);
|
||||
gridPanel.add(grid);
|
||||
gridPanel.setButtonAlign(HorizontalAlignment.CENTER);
|
||||
gridPanel.setButtonAlign(HorizontalAlignment.CENTER);
|
||||
gridPanel.addButton(viewButton);
|
||||
gridPanel.addButton(editButton);
|
||||
gridPanel.addButton(approveButton);
|
||||
gridPanel.addButton(viewReportButton);
|
||||
gridPanel.addButton(viewTextualReportButton);
|
||||
gridPanel.addButton(removeButton);
|
||||
gridPanel.addButton(refreshButton);
|
||||
|
||||
gridPanel.setBorders(false);
|
||||
tablePanel.add(gridPanel);
|
||||
tablePanel.setLayout(new FitLayout());
|
||||
tablePanel.layout();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void maskCenterPanel(String message, boolean mask) {
|
||||
if (mask)
|
||||
tablePanel.mask(message, "loading-indicator");
|
||||
else
|
||||
tablePanel.unmask();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setData(List<VREDefinitionBean> data) {
|
||||
store.removeAll();
|
||||
// store.setDefaultSort("lastDate", SortDir.DESC);
|
||||
// store.sort("lastDate", SortDir.DESC);
|
||||
store.groupBy("status");
|
||||
store.add(data);
|
||||
displayDocuments();
|
||||
}
|
||||
|
||||
public Widget asWidget() {
|
||||
return this;
|
||||
}
|
||||
@Override
|
||||
public void updateSize() {
|
||||
RootPanel workspace = RootPanel.get(VREDeploymentApp.CONTAINER_DIV);
|
||||
int topBorder = workspace.getAbsoluteTop();
|
||||
int leftBorder = workspace.getAbsoluteLeft();
|
||||
int rightScrollBar = 17;
|
||||
int rootHeight = Window.getClientHeight() - topBorder - 4;
|
||||
int rootWidth = Window.getClientWidth() - 2* leftBorder - rightScrollBar;
|
||||
tablePanel.setPixelSize(rootWidth-30, rootHeight-30);
|
||||
mainPanel.setPixelSize(rootWidth-30, rootHeight-30);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the Column Model for the table
|
||||
*/
|
||||
private ColumnModel getVREListColumnModel() {
|
||||
|
||||
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
|
||||
|
||||
ColumnConfig column = new ColumnConfig();
|
||||
column = new ColumnConfig();
|
||||
column.setId("name");
|
||||
column.setHeader("VRE name");
|
||||
column.setWidth(100);
|
||||
configs.add(column);
|
||||
|
||||
column = new ColumnConfig();
|
||||
column.setId("status");
|
||||
column.setHeader("Status");
|
||||
column.setHidden(false);
|
||||
column.setWidth(75);
|
||||
column.setRowHeader(true);
|
||||
configs.add(column);
|
||||
|
||||
column = new ColumnConfig("description", "Description", 300);
|
||||
column.setHidden(false);
|
||||
column.setRowHeader(true);
|
||||
configs.add(column);
|
||||
|
||||
return new ColumnModel(configs);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* change the button to enable in the bottom bar depending on the status of the selected VRE
|
||||
*/
|
||||
@Override
|
||||
public void enableActionButtons(VREDefinitionBean selectedItem) {
|
||||
if (selectedItem != null) {
|
||||
if ((selectedItem.getStatus().compareTo("Failed") == 0) || (selectedItem.getStatus().compareTo("Finished") == 0) || (selectedItem.getStatus().compareTo("Deployed") == 0)) {
|
||||
getViewButton().setEnabled(true);
|
||||
getEditButton().setEnabled(false);
|
||||
getApproveButton().setEnabled(false);
|
||||
getRemoveButton().setEnabled(true);
|
||||
getViewReportButton().setEnabled(true);
|
||||
getViewTextualReportButton().setEnabled(true);
|
||||
}
|
||||
else if ((selectedItem.getStatus().compareTo("Running") == 0) || (selectedItem.getStatus().compareTo("Deploying") == 0)) {
|
||||
getViewButton().setEnabled(true);
|
||||
getEditButton().setEnabled(false);
|
||||
getApproveButton().setEnabled(false);
|
||||
getRemoveButton().setEnabled(false);
|
||||
getViewReportButton().setEnabled(true);
|
||||
getViewTextualReportButton().setEnabled(true);
|
||||
}
|
||||
else if (selectedItem.getStatus().compareTo("Pending") == 0 || selectedItem.getStatus().compareTo("Incomplete") == 0 || selectedItem.getStatus().compareTo("Disposed") == 0) {
|
||||
getViewButton().setEnabled(true);
|
||||
getEditButton().setEnabled(true);
|
||||
getApproveButton().setEnabled(true);
|
||||
getRemoveButton().setEnabled(true);
|
||||
getViewReportButton().setEnabled(false);
|
||||
}
|
||||
}
|
||||
else {
|
||||
getViewButton().setEnabled(false);
|
||||
getEditButton().setEnabled(false);
|
||||
getApproveButton().setEnabled(false);
|
||||
getRemoveButton().setEnabled(false);
|
||||
getViewReportButton().setEnabled(false);
|
||||
getViewTextualReportButton().setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showDetailsDialog(String html2Show) {
|
||||
final Dialog simple = new Dialog();
|
||||
simple.setHeading("VRE Details");
|
||||
simple.setButtons(Dialog.CLOSE);
|
||||
simple.setBodyStyleName("pad-text");
|
||||
Html toDisplay = new Html(html2Show);
|
||||
simple.add(toDisplay);
|
||||
simple.getItem(0).getFocusSupport().setIgnore(true);
|
||||
simple.setScrollMode(Scroll.AUTO);
|
||||
simple.setHideOnButtonClick(true);
|
||||
simple.setModal(true);
|
||||
simple.setSize(600, 450);
|
||||
simple.setMaximizable(true);
|
||||
simple.show();
|
||||
simple.el().fadeIn(FxConfig.NONE);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* change the items to show in the menu depending on the status of the selected VRE
|
||||
*/
|
||||
@Override
|
||||
public void setGridContextMenu(String vreStatus) {
|
||||
gridMenu.removeAll();
|
||||
if (vreStatus.compareTo("Failed") == 0 || (vreStatus.compareTo("Finished") == 0) || (vreStatus.compareTo("Deployed") == 0)) {
|
||||
gridMenu.add(viewMenu);
|
||||
gridMenu.add(removeMenu);
|
||||
gridMenu.add(viewReportMenu);
|
||||
}
|
||||
else if ((vreStatus.compareTo("Running") == 0) || (vreStatus.compareTo("Deploying") == 0)) {
|
||||
gridMenu.add(viewReportMenu);
|
||||
gridMenu.add(viewMenu);
|
||||
}
|
||||
else if (vreStatus.compareTo("Pending") == 0) {
|
||||
gridMenu.add(approveMenu);
|
||||
gridMenu.add(viewMenu);
|
||||
gridMenu.add(editMenu);
|
||||
gridMenu.add(removeMenu);
|
||||
}
|
||||
else if (vreStatus.compareTo("Incomplete") == 0 || vreStatus.compareTo("Disposed") == 0) {
|
||||
gridMenu.add(approveMenu);
|
||||
gridMenu.add(viewMenu);
|
||||
gridMenu.add(editMenu);
|
||||
gridMenu.add(removeMenu);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Button getApproveButton() { return approveButton;
|
||||
}
|
||||
@Override
|
||||
public Button getEditButton() {return editButton;
|
||||
}
|
||||
@Override
|
||||
public GridSelectionModel<VREDefinitionBean> getGridSelectionModel() { return grid.getSelectionModel();
|
||||
}
|
||||
@Override
|
||||
public Button getRefreshButton() {return refreshButton;
|
||||
}
|
||||
@Override
|
||||
public Button getRemoveButton() {return removeButton;
|
||||
}
|
||||
@Override
|
||||
public Button getViewButton() {return viewButton;
|
||||
}
|
||||
@Override
|
||||
public Button getViewReportButton() {return viewReportButton;
|
||||
}
|
||||
@Override
|
||||
public Button getViewTextualReportButton() {return viewTextualReportButton;
|
||||
}
|
||||
@Override
|
||||
public MenuItem getApproveMenu() { return approveMenu;
|
||||
}
|
||||
@Override
|
||||
public MenuItem getEditMenu() { return editMenu;
|
||||
}
|
||||
@Override
|
||||
public MenuItem getRemoveMenu() { return removeMenu;
|
||||
}
|
||||
@Override
|
||||
public MenuItem getViewMenu() { return viewMenu;
|
||||
}
|
||||
@Override
|
||||
public MenuItem getViewReportMenu() {return viewReportMenu;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,351 @@
|
|||
package org.gcube.portlets.admin.vredeployment.server;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
import java.rmi.RemoteException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
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.transform.stream.StreamSource;
|
||||
|
||||
import org.gcube.application.framework.core.session.ASLSession;
|
||||
import org.gcube.application.framework.core.session.SessionManager;
|
||||
import org.gcube.application.framework.vremanagement.vremanagement.impl.VREGeneratorEvo;
|
||||
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
||||
import org.gcube.portlets.admin.vredeployment.client.VREDeploymentService;
|
||||
import org.gcube.portlets.admin.vredeployment.shared.VREDefinitionBean;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.FunctionalityItem;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.Report;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.ResourceDescriptionItem;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.ResourceItem;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.VREDescription;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
||||
|
||||
/**
|
||||
* The server side implementation of the RPC service.
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class VREDeploymentServiceImpl extends RemoteServiceServlet implements VREDeploymentService {
|
||||
|
||||
private static final Logger _log = LoggerFactory.getLogger(VREDeploymentServiceImpl.class);
|
||||
|
||||
private static final String APPROVE_MODE = "approve";
|
||||
private static final String EDIT_MODE = "edit";
|
||||
private static final String REEDIT_TYPE_ATTRIBUTE = "reeditType";
|
||||
private static final String USERNAME_ATTRIBUTE = "username";
|
||||
private static final String VRE_GENERATOR_ATTRIBUTE = "VREGenerator";
|
||||
private static final String VIEW_MODE_ATTRIBUTE = "viewMode";
|
||||
|
||||
private static final String HARD_CODED_VO_NAME = "/gcube/devsec";
|
||||
|
||||
|
||||
@Override
|
||||
public ArrayList<VREDefinitionBean> getVREDefinitions() {
|
||||
ASLSession aslSession = getASLSession();
|
||||
ArrayList<VREDefinitionBean> toReturn = new ArrayList<VREDefinitionBean>();
|
||||
System.out.println("getAllVREs");
|
||||
VREGeneratorEvo evo = new VREGeneratorEvo(aslSession);
|
||||
List<Report> list = evo.getAllVREs(aslSession);
|
||||
if (list == null || list.isEmpty()) {
|
||||
return toReturn;
|
||||
}
|
||||
else {
|
||||
Report[] vres = list.toArray(new Report[0]);
|
||||
|
||||
for (int i = 0; i < vres.length; i++) {
|
||||
if (vres[i].name().equals("notCompletedVirtualResearchEnv.")) {
|
||||
_log.debug("removing fake vre" + vres[i].name());
|
||||
doRemove(vres[i].id());
|
||||
}
|
||||
else {
|
||||
toReturn.add(new VREDefinitionBean(vres[i].id(), vres[i].name(), vres[i].description(), "", "", new Date(), new Date(), vres[i].state(), ""));
|
||||
_log.debug(vres[i].name() + " id=" + vres[i].id());
|
||||
}
|
||||
}
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private ASLSession getASLSession() {
|
||||
HttpSession session = this.getThreadLocalRequest().getSession();
|
||||
String username = (String) session.getAttribute(ScopeHelper.USERNAME_ATTRIBUTE);
|
||||
|
||||
if (username == null) {
|
||||
username = "massimiliano.assante";
|
||||
SessionManager.getInstance().getASLSession(session.getId(), username).setScope(HARD_CODED_VO_NAME);
|
||||
//SessionManager.getInstance().getASLSession(session.getId(), username).setAttribute(REEDIT_TYPE_ATTRIBUTE, APPROVE_MODE);
|
||||
}
|
||||
|
||||
return SessionManager.getInstance().getASLSession(session.getId(), username);
|
||||
}
|
||||
|
||||
/**
|
||||
* approve the vre and set in session necessar vars for deployer
|
||||
*/
|
||||
public boolean doApprove(String epr) {
|
||||
System.out.println("--- approve ---");
|
||||
epr = unCodeERP(epr);
|
||||
System.out.println("VRE Instance to approve at epr: " + epr);
|
||||
|
||||
ASLSession d4ScienceSession = getASLSession();
|
||||
System.out.println("doApprove id: " + epr + " Scope: " + d4ScienceSession.getScopeName());
|
||||
|
||||
d4ScienceSession.setAttribute(VRE_GENERATOR_ATTRIBUTE, epr);
|
||||
|
||||
d4ScienceSession.setAttribute(REEDIT_TYPE_ATTRIBUTE, APPROVE_MODE);
|
||||
System.out.println("REEDIT_TYPE_ATTRIBUTE SET: " + APPROVE_MODE);
|
||||
setDeployingStatusOff();
|
||||
|
||||
d4ScienceSession.setAttribute(VIEW_MODE_ATTRIBUTE, new Boolean(false));
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final String DEPLOYING = "DEPLOYING";
|
||||
private void setDeployingStatusOff() {
|
||||
System.out.println("--- setDeployingStatusOff ---");
|
||||
|
||||
getASLSession().setAttribute(DEPLOYING, null);
|
||||
}
|
||||
|
||||
|
||||
private String unCodeERP(String epr){
|
||||
epr = epr.replace(">", ">");
|
||||
epr = epr.replace("<", "<");
|
||||
epr = epr.replace(""", "\"");
|
||||
return epr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doRemove(String epr) {
|
||||
ASLSession aslSession = getASLSession();
|
||||
VREGeneratorEvo evo = new VREGeneratorEvo(aslSession);
|
||||
evo.removeVRE(aslSession, epr);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doEdit(String epr) {
|
||||
epr = unCodeERP(epr);
|
||||
System.out.println("VRE Instance to edit at epr: " + epr);
|
||||
ASLSession session = getASLSession();
|
||||
session.setAttribute(VRE_GENERATOR_ATTRIBUTE, epr);
|
||||
session.setAttribute(REEDIT_TYPE_ATTRIBUTE, EDIT_MODE);
|
||||
session.setAttribute(VIEW_MODE_ATTRIBUTE, new Boolean(false));
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String doViewDetails(String epr) {
|
||||
String toReturn = "";
|
||||
epr = unCodeERP(epr);
|
||||
System.out.println("VRE Instance to edit at epr: " + epr);
|
||||
try {
|
||||
ASLSession session = getASLSession();
|
||||
VREGeneratorEvo vreGenerator = new VREGeneratorEvo(session,epr);
|
||||
toReturn = getHTMLDescription(vreGenerator);
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
return "Could not retrieve VRE info, cause: " + e.getMessage();
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doViewReport(String epr) {
|
||||
System.out.println("--- view REPORT ---");
|
||||
System.out.println("VRE Instance to view at encoded epr: " + epr);
|
||||
epr = unCodeERP(epr);
|
||||
System.out.println("VRE Instance to view at epr: " + epr);
|
||||
ASLSession d4ScienceSession = getASLSession();
|
||||
VREGeneratorEvo vreGenerator = new VREGeneratorEvo(d4ScienceSession,epr);
|
||||
d4ScienceSession.setAttribute(VRE_GENERATOR_ATTRIBUTE, vreGenerator);
|
||||
|
||||
getASLSession().setAttribute(DEPLOYING, "ON");
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Antonio Method for displaying info
|
||||
* @param evo
|
||||
* @return
|
||||
* @throws RemoteException
|
||||
*/
|
||||
private String getHTMLDescription(VREGeneratorEvo evo) throws RemoteException {
|
||||
String toReturn = "";
|
||||
|
||||
VREDescription vre = evo.getVREModel();
|
||||
//STYLE=\"font-size:18px;\"
|
||||
String vreDescription = "<div STYLE=\"font-size:18px;\" align=\"center\" ><h1> Summary </h1></div>";
|
||||
vreDescription+="<div><b>Name: </b>" + vre.name() +"</div>";
|
||||
vreDescription+="<div><b>VRE Designer: </b>" + vre.designer() +"</div>";
|
||||
vreDescription+="<div><b>VRE Manager: </b>" + vre.manager() +"</div>";
|
||||
SimpleDateFormat fmt = new SimpleDateFormat("EEE, MMM d, ''yy");
|
||||
vreDescription+="<div ><b>From: </b>"
|
||||
+ fmt.format(vre.startTime().getTime())
|
||||
+ " <b> To: </b>"
|
||||
+ fmt.format(vre.endTime().getTime())
|
||||
+ "</div>";
|
||||
|
||||
vreDescription+= "<br />";
|
||||
vreDescription+="<div><b>Description: </b>" + vre.description() +"</div>";
|
||||
vreDescription += "<br />";
|
||||
|
||||
|
||||
vreDescription += "<div style=\"font-size:14px;\" align=\"center\" >Functionalities</div>";
|
||||
vreDescription += "<table>";
|
||||
|
||||
try {
|
||||
List<FunctionalityItem> list = evo.getFunctionality();
|
||||
if (list == null) {
|
||||
_log.warn("FunctionalityList NULL");
|
||||
} else {
|
||||
for (FunctionalityItem fi :list){
|
||||
vreDescription += "<tr><td><span style=\"font-weight: bold; color: #333; font-size: 12px;\">" + fi.name() + "</span></td></tr>";
|
||||
if (fi.children() != null && !fi.children().isEmpty()) {
|
||||
List<FunctionalityItem> children = fi.children();
|
||||
for (int i = 0; i < children.size(); i++) {
|
||||
if (children.get(i).selected()) {
|
||||
vreDescription += "<tr><td><span class=\"funcadd\">" + children.get(i).name() + "</span></td></tr>";
|
||||
if ( children.get(i).selectableResourcesDescription()!=null)
|
||||
for (ResourceDescriptionItem category: children.get(i).selectableResourcesDescription())
|
||||
if (category.resources()!=null)
|
||||
for (ResourceItem resource : category.resources())
|
||||
if (resource.selected())
|
||||
vreDescription += "<tr><td><span class=\"extres\" >" + resource.name() + "</span></td></tr>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
vreDescription += "</table>";
|
||||
toReturn += vreDescription;
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return the html representation of the report
|
||||
*/
|
||||
@Override
|
||||
public String getHTMLReport(String epr) {
|
||||
epr = unCodeERP(epr);
|
||||
_log.info("--- getHTMLReport VRE ---");
|
||||
|
||||
ASLSession session = getASLSession();
|
||||
VREGeneratorEvo vreGenerator = new VREGeneratorEvo(session,epr);
|
||||
|
||||
String report = null;
|
||||
|
||||
try {
|
||||
report = vreGenerator.checkVREStatus();
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
String startDirectory = this.getServletContext().getRealPath("");
|
||||
String xslFileLocation = startDirectory + "/styles/report.xsl";
|
||||
|
||||
String transformed = "";
|
||||
transformed = transformToHtml(report, xslFileLocation);
|
||||
|
||||
|
||||
return transformed;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param profile
|
||||
* @param xslFile
|
||||
* @return
|
||||
*/
|
||||
private String transformToHtml(String profile, String xslFile){
|
||||
|
||||
|
||||
File stylesheet = new File(xslFile);
|
||||
|
||||
TransformerFactory tFactory = TransformerFactory.newInstance();
|
||||
|
||||
StreamSource stylesource = new StreamSource(stylesheet);
|
||||
|
||||
Transformer transformer = null;
|
||||
try {
|
||||
transformer = tFactory.newTransformer(stylesource);
|
||||
} catch (TransformerConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
Document document = null;
|
||||
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder builder = null;
|
||||
try {
|
||||
builder = factory.newDocumentBuilder();
|
||||
} catch (ParserConfigurationException e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
StringReader reader = new StringReader(profile);
|
||||
InputSource inputSource = new InputSource(reader);
|
||||
|
||||
_log.debug("***** --- Reading **** ");
|
||||
try {
|
||||
document = builder.parse(inputSource);
|
||||
} catch (SAXException e) {
|
||||
_log.error("***** --- ERROR PARSING REPORT SAXException--- **** ");
|
||||
_log.error("CHECK THIS: \n" + profile);
|
||||
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
DOMSource source = new DOMSource(document);
|
||||
|
||||
ByteArrayOutputStream resultStream = new ByteArrayOutputStream();
|
||||
StreamResult result = new StreamResult(resultStream);
|
||||
|
||||
try {
|
||||
transformer.transform(source, result);
|
||||
} catch (TransformerException e) {
|
||||
e.printStackTrace();
|
||||
return "";
|
||||
}
|
||||
|
||||
return resultStream.toString();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
package org.gcube.portlets.admin.vredeployment.server.portlet;
|
||||
|
||||
import javax.portlet.GenericPortlet;
|
||||
import javax.portlet.ActionRequest;
|
||||
import javax.portlet.PortletSession;
|
||||
import javax.portlet.RenderRequest;
|
||||
import javax.portlet.ActionResponse;
|
||||
import javax.portlet.RenderResponse;
|
||||
import javax.portlet.PortletException;
|
||||
import java.io.IOException;
|
||||
import javax.portlet.PortletRequestDispatcher;
|
||||
|
||||
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
||||
|
||||
import com.liferay.portal.PortalException;
|
||||
import com.liferay.portal.SystemException;
|
||||
import com.liferay.portal.model.User;
|
||||
import com.liferay.portal.service.UserLocalServiceUtil;
|
||||
|
||||
/**
|
||||
* VREDeploymentPortlet Portlet Class
|
||||
* @author massi
|
||||
*/
|
||||
public class VREDeploymentPortlet extends GenericPortlet {
|
||||
|
||||
public void doView(RenderRequest request, RenderResponse response)
|
||||
throws PortletException, IOException {
|
||||
|
||||
ScopeHelper.setContext(request);
|
||||
|
||||
PortletRequestDispatcher dispatcher =
|
||||
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/VREDeploymentPortlet_view.jsp");
|
||||
dispatcher.include(request, response);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void processAction(ActionRequest request, ActionResponse response)
|
||||
throws PortletException, IOException {
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package org.gcube.portlets.admin.vredeployment.shared;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* FieldVerifier validates that the name the user enters is valid.
|
||||
* </p>
|
||||
* <p>
|
||||
* This class is in the <code>shared</code> packing because we use it in both
|
||||
* the client code and on the server. On the client, we verify that the name is
|
||||
* valid before sending an RPC request so the user doesn't have to wait for a
|
||||
* network round trip to get feedback. On the server, we verify that the name is
|
||||
* correct to ensure that the input is correct regardless of where the RPC
|
||||
* originates.
|
||||
* </p>
|
||||
* <p>
|
||||
* When creating a class that is used on both the client and the server, be sure
|
||||
* that all code is translatable and does not use native JavaScript. Code that
|
||||
* is note translatable (such as code that interacts with a database or the file
|
||||
* system) cannot be compiled into client side JavaScript. Code that uses native
|
||||
* JavaScript (such as Widgets) cannot be run on the server.
|
||||
* </p>
|
||||
*/
|
||||
public class FieldVerifier {
|
||||
|
||||
/**
|
||||
* Verifies that the specified name is valid for our service.
|
||||
*
|
||||
* In this example, we only require that the name is at least four
|
||||
* characters. In your application, you can use more complex checks to ensure
|
||||
* that usernames, passwords, email addresses, URLs, and other fields have the
|
||||
* proper syntax.
|
||||
*
|
||||
* @param name the name to validate
|
||||
* @return true if valid, false if invalid
|
||||
*/
|
||||
public static boolean isValidName(String name) {
|
||||
if (name == null) {
|
||||
return false;
|
||||
}
|
||||
return name.length() > 3;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package org.gcube.portlets.admin.vredeployment.shared;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseModel;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class VREDefinitionBean extends BaseModel {
|
||||
|
||||
public VREDefinitionBean() {
|
||||
}
|
||||
|
||||
|
||||
public VREDefinitionBean(String id, String name, String description, String designer,
|
||||
String manager, Date startingDate, Date endingDate, String status, String summary) {
|
||||
set("id", id);
|
||||
set("name", name);
|
||||
set("description", description);
|
||||
set("designer", designer);
|
||||
set("manager", manager);
|
||||
set("startingDate", startingDate);
|
||||
set("endingDate", endingDate);
|
||||
set("status", status);
|
||||
set("summary", summary);
|
||||
}
|
||||
|
||||
public String getId() { return (String) get("id"); }
|
||||
|
||||
public String getName() {return (String) get("name"); }
|
||||
|
||||
public String getDescription() {return (String) get("description"); }
|
||||
|
||||
public String getDesigner() {return (String) get("designer"); }
|
||||
|
||||
public String getManager() {return (String) get("manager"); }
|
||||
|
||||
public Date getStartingDate() { return (Date) get("startingDate"); }
|
||||
|
||||
public Date getEndingDate() { return (Date) get("endingDate"); }
|
||||
|
||||
public String getStatus() { return (String) get("status"); }
|
||||
|
||||
public String getSummary() { return (String) get("summary"); }
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module rename-to='vredeploymentapp'>
|
||||
<!-- Inherit the core Web Toolkit stuff. -->
|
||||
<inherits name='com.google.gwt.user.User' />
|
||||
|
||||
<!-- To Comment out -->
|
||||
<!-- <set-property name="user.agent" value="gecko1_8" /> -->
|
||||
|
||||
<!-- Inherit the default GWT style sheet. You can change -->
|
||||
<!-- the theme of your GWT application by uncommenting -->
|
||||
<!-- any one of the following lines. -->
|
||||
<inherits name='com.google.gwt.user.theme.standard.Standard' />
|
||||
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
|
||||
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
|
||||
|
||||
<!-- Other module inherits -->
|
||||
<inherits name='com.extjs.gxt.ui.GXT' />
|
||||
<inherits name='com.extjs.gxt.themes.Themes' />
|
||||
<!-- Specify the app entry point class. -->
|
||||
|
||||
<!-- inherits GCUBE Widgets -->
|
||||
<inherits name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
|
||||
|
||||
<entry-point
|
||||
class='org.gcube.portlets.admin.vredeployment.client.VREDeploymentApp' />
|
||||
|
||||
<!-- Specify the paths for translatable code -->
|
||||
<source path='client' />
|
||||
<source path='shared' />
|
||||
|
||||
</module>
|
|
@ -0,0 +1,2 @@
|
|||
sendButton = Send
|
||||
nameField = Enter your name
|
|
@ -0,0 +1,2 @@
|
|||
sendButton = Envoyer
|
||||
nameField = Entrez votre nom
|
|
@ -0,0 +1,71 @@
|
|||
@import url(d4scienceOrg.css);
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
color: #777777;
|
||||
margin: 40px 0px 70px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sendButton {
|
||||
display: block;
|
||||
font-size: 16pt;
|
||||
}
|
||||
|
||||
/** Most GWT widgets already have a style name defined */
|
||||
.gwt-DialogBox {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
.dialogVPanel {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
.serverResponseLabelError {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/** Set ids using widget.getElement().setId("idOfElement") */
|
||||
#closeButton {
|
||||
margin: 15px 6px 6px;
|
||||
}
|
||||
|
||||
.pad-text{
|
||||
padding: 2px;
|
||||
background-color: #FFF !important;
|
||||
}
|
||||
|
||||
.edit-icon {
|
||||
background-image:url(images/vre_edit.png) !important;
|
||||
}
|
||||
|
||||
.view-icon {
|
||||
background-image:url(images/vre_view.png) !important;
|
||||
}
|
||||
|
||||
.approve-icon {
|
||||
background-image:url(images/vre_approve.png) !important;
|
||||
}
|
||||
.remove-icon {
|
||||
background-image:url(images/vre_remove.png) !important;
|
||||
}
|
||||
.viewreport-icon {
|
||||
background-image:url(images/vre_viewreport.png) !important;
|
||||
}
|
||||
.funcadd {
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
font-size: 12px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.extres {
|
||||
background-image:url(images/ext_resource.png) !important;
|
||||
background-repeat: no-repeat;
|
||||
font-weight: bold;
|
||||
color: #555;
|
||||
font-size: 12px;
|
||||
padding-left: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<!-- The DOCTYPE declaration above will set the -->
|
||||
<!-- browser's rendering engine into -->
|
||||
<!-- "Standards Mode". Replacing this declaration -->
|
||||
<!-- with a "Quirks Mode" doctype may lead to some -->
|
||||
<!-- differences in layout. -->
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||||
|
||||
<!-- -->
|
||||
<!-- Consider inlining CSS to reduce the number of requested files -->
|
||||
<!-- -->
|
||||
<link rel="stylesheet" type="text/css" href="gxt/css/gxt-all.css" >
|
||||
<link type="text/css" rel="stylesheet" href="VREDeploymentApp.css">
|
||||
|
||||
<script type="text/javascript" language="javascript"
|
||||
src="vredeploymentapp/vredeploymentapp.nocache.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="DeploymentView"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,15 @@
|
|||
<%@page contentType="text/html"%>
|
||||
<%@page pageEncoding="UTF-8"%>
|
||||
|
||||
<%-- Uncomment below lines to add portlet taglibs to jsp
|
||||
<%@ page import="javax.portlet.*"%>
|
||||
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
|
||||
|
||||
<portlet:defineObjects />
|
||||
--%>
|
||||
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/VREDeploymentApp.css" />
|
||||
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/gxt/css/gxt-all.css" />
|
||||
|
||||
<script type="text/javascript" language="javascript" src="<%=request.getContextPath()%>/vredeploymentapp/vredeploymentapp.nocache.js"></script>
|
||||
<div id="DeploymentView"></div>
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN" "http://www.liferay.com/dtd/liferay-display_5_2_0.dtd">
|
||||
|
||||
<display>
|
||||
<category name="gCube Applications">
|
||||
<portlet id="VREDeployment" />
|
||||
</category>
|
||||
</display>
|
|
@ -0,0 +1,9 @@
|
|||
name=VRE Deployment
|
||||
module-group-id=liferay
|
||||
module-incremental-version=1
|
||||
tags=
|
||||
short-description=
|
||||
change-log=
|
||||
page-url=http://www.d4science.eu
|
||||
author=D4Science EU
|
||||
licenses=
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_5_2_0.dtd">
|
||||
|
||||
<liferay-portlet-app>
|
||||
<portlet>
|
||||
<portlet-name>VREDeployment</portlet-name>
|
||||
<layout-cacheable>false</layout-cacheable>
|
||||
<instanceable>false</instanceable>
|
||||
<ajaxable>false</ajaxable>
|
||||
</portlet>
|
||||
<role-mapper>
|
||||
<role-name>administrator</role-name>
|
||||
<role-link>Administrator</role-link>
|
||||
</role-mapper>
|
||||
<role-mapper>
|
||||
<role-name>guest</role-name>
|
||||
<role-link>Guest</role-link>
|
||||
</role-mapper>
|
||||
<role-mapper>
|
||||
<role-name>power-user</role-name>
|
||||
<role-link>Power User</role-link>
|
||||
</role-mapper>
|
||||
<role-mapper>
|
||||
<role-name>user</role-name>
|
||||
<role-link>User</role-link>
|
||||
</role-mapper>
|
||||
</liferay-portlet-app>
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
|
||||
<portlet>
|
||||
<portlet-name>VREDeployment</portlet-name>
|
||||
<display-name>=VRE Deployment</display-name>
|
||||
<portlet-class>org.gcube.portlets.admin.vredeployment.server.portlet.VREDeploymentPortlet</portlet-class>
|
||||
<init-param>
|
||||
<name>view-jsp</name>
|
||||
<value>/WEB-INF/VREDeploymentPortlet_view.jsp</value>
|
||||
</init-param>
|
||||
<expiration-cache>0</expiration-cache>
|
||||
<supports>
|
||||
<mime-type>text/html</mime-type>
|
||||
</supports>
|
||||
<portlet-info>
|
||||
<title>VRE Deployment</title>
|
||||
<short-title>VRE Deployment</short-title>
|
||||
<keywords>VRE Deployment</keywords>
|
||||
</portlet-info>
|
||||
<security-role-ref>
|
||||
<role-name>administrator</role-name>
|
||||
</security-role-ref>
|
||||
</portlet>
|
||||
</portlet-app>
|
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!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>
|
||||
|
||||
<!-- Servlets -->
|
||||
<servlet>
|
||||
<servlet-name>vreDeploymentServlet</servlet-name>
|
||||
<servlet-class>org.gcube.portlets.admin.vredeployment.server.VREDeploymentServiceImpl</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>vreDeploymentServlet</servlet-name>
|
||||
<url-pattern>/vredeploymentapp/vreDeploymentServlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Default page to serve -->
|
||||
<welcome-file-list>
|
||||
<welcome-file>VREDeploymentApp.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
</web-app>
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
.ext-el-mask-msg {
|
||||
-webkit-border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
border-width: 2px;
|
||||
background-color: #FFF;
|
||||
}
|
||||
|
||||
.ext-el-mask-msg div {
|
||||
border-color: transparent;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.loading-indicator {
|
||||
background-position: 5px 50%;
|
||||
background-image: url("images/loader.gif");
|
||||
}
|
|
@ -0,0 +1,493 @@
|
|||
.x-panel {
|
||||
border-style: solid;
|
||||
border-color: #d0d0d0;
|
||||
}
|
||||
.x-panel-header {
|
||||
color:#333;
|
||||
border:1px solid #d0d0d0;
|
||||
background-image:url(../images/gray/panel/white-top-bottom.gif);
|
||||
}
|
||||
|
||||
.x-panel-body {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
.x-panel-bbar .x-toolbar {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
.x-panel-tbar .x-toolbar {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
.x-panel-tbar-noheader .x-toolbar, .x-panel-mc .x-panel-tbar .x-toolbar {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
.x-panel-body-noheader, .x-panel-mc .x-panel-body {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
.x-panel-tl .x-panel-header {
|
||||
color:#333;
|
||||
}
|
||||
.x-panel-tc {
|
||||
background-image:url(../images/gray/panel/top-bottom.gif);
|
||||
}
|
||||
.x-panel-tl {
|
||||
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
.x-panel-tr {
|
||||
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||
}
|
||||
.x-panel-bc {
|
||||
background-image:url(../images/gray/panel/top-bottom.gif);
|
||||
}
|
||||
.x-panel-bl {
|
||||
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||
}
|
||||
.x-panel-br {
|
||||
background-image:url(../images/gray/panel/corners-sprite.gif);
|
||||
}
|
||||
.x-panel-mc {
|
||||
background:#f1f1f1;
|
||||
}
|
||||
.x-panel-mc .x-panel-body {
|
||||
background:transparent;
|
||||
border: 0 none;
|
||||
}
|
||||
.x-panel-ml {
|
||||
background-image:url(../images/gray/panel/left-right.gif);
|
||||
}
|
||||
.x-panel-mr {
|
||||
background-image:url(../images/gray/panel/left-right.gif);
|
||||
}
|
||||
|
||||
/* Tools */
|
||||
.x-tool {
|
||||
background-image:url(../images/gray/panel/tool-sprites.gif);
|
||||
}
|
||||
|
||||
/* Ghosting */
|
||||
.x-panel-ghost {
|
||||
background:#e0e0e0;
|
||||
}
|
||||
|
||||
.x-panel-ghost ul {
|
||||
border-color:#b0b0b0;
|
||||
}
|
||||
|
||||
.x-grid-panel .x-panel-mc .x-panel-body {
|
||||
border:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
/* Buttons */
|
||||
|
||||
.x-btn-left{
|
||||
background-image:url(../images/gray/button/btn-sprite.gif);
|
||||
}
|
||||
.x-btn-right{
|
||||
background-image:url(../images/gray/button/btn-sprite.gif);
|
||||
}
|
||||
.x-btn-center{
|
||||
background-image:url(../images/gray/button/btn-sprite.gif);
|
||||
}
|
||||
|
||||
.x-btn-group-header {
|
||||
color: #333333;
|
||||
}
|
||||
.x-btn-group-tc {
|
||||
background-image: url(../images/gray/button/group-tb.gif);
|
||||
}
|
||||
.x-btn-group-tl {
|
||||
background-image: url(../images/gray/button/group-cs.gif);
|
||||
}
|
||||
.x-btn-group-tr {
|
||||
background-image: url(../images/gray/button/group-cs.gif);
|
||||
}
|
||||
.x-btn-group-bc {
|
||||
background-image: url(../images/gray/button/group-tb.gif);
|
||||
}
|
||||
.x-btn-group-bl {
|
||||
background-image: url(../images/gray/button/group-cs.gif);
|
||||
}
|
||||
.x-btn-group-br {
|
||||
background-image: url(../images/gray/button/group-cs.gif);
|
||||
}
|
||||
.x-btn-group-ml {
|
||||
background-image: url(../images/gray/button/group-lr.gif);
|
||||
}
|
||||
.x-btn-group-mr {
|
||||
background-image: url(../images/gray/button/group-lr.gif);
|
||||
}
|
||||
.x-btn-group-notitle .x-btn-group-tc {
|
||||
background-image: url(../images/gray/button/group-tb.gif);
|
||||
}
|
||||
|
||||
/* Layout classes */
|
||||
|
||||
.x-border-layout-ct {
|
||||
background:#f0f0f0;
|
||||
}
|
||||
|
||||
.x-accordion-hd {
|
||||
background-image:url(../images/gray/panel/light-hd.gif);
|
||||
}
|
||||
|
||||
.x-layout-collapsed{
|
||||
background-color:#eee;
|
||||
border-color:#e0e0e0;
|
||||
}
|
||||
.x-layout-collapsed-over{
|
||||
background-color:#fbfbfb;
|
||||
}
|
||||
|
||||
|
||||
/* qtips */
|
||||
.x-tip .x-tip-top {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-top-left {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-top-right {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-ft {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-ft-left {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-ft-right {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-bd-left {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
.x-tip .x-tip-bd-right {
|
||||
background-image:url(../images/gray/qtip/tip-sprite.gif);
|
||||
}
|
||||
|
||||
/* Toolbars */
|
||||
|
||||
.x-toolbar{
|
||||
border-color:#d0d0d0;
|
||||
background:#f0f4f5 url(../images/gray/toolbar/bg.gif) repeat-x top left;
|
||||
}
|
||||
.x-toolbar button {
|
||||
color:#444;
|
||||
}
|
||||
.x-toolbar .x-btn-menu-arrow-wrap .x-btn-center button {
|
||||
background-image:url(../images/gray/toolbar/btn-arrow.gif);
|
||||
}
|
||||
.x-toolbar .x-btn-text-icon .x-btn-menu-arrow-wrap .x-btn-center button {
|
||||
background-image:url(../images/gray/toolbar/btn-arrow.gif);
|
||||
}
|
||||
.x-toolbar .x-btn-over .x-btn-left{
|
||||
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||
}
|
||||
.x-toolbar .x-btn-over .x-btn-right{
|
||||
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||
}
|
||||
.x-toolbar .x-btn-over .x-btn-center{
|
||||
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||
}
|
||||
.x-toolbar .x-btn-over button {
|
||||
color:#111;
|
||||
}
|
||||
.x-toolbar .x-btn-click .x-btn-left, .x-toolbar .x-btn-pressed .x-btn-left, .x-toolbar .x-btn-menu-active .x-btn-left{
|
||||
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||
}
|
||||
.x-toolbar .x-btn-click .x-btn-right, .x-toolbar .x-btn-pressed .x-btn-right, .x-toolbar .x-btn-menu-active .x-btn-right{
|
||||
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||
}
|
||||
|
||||
.x-toolbar .x-btn-click .x-btn-center, .x-toolbar .x-btn-pressed .x-btn-center, .x-toolbar .x-btn-menu-active .x-btn-center{
|
||||
background-image:url(../images/gray/toolbar/tb-btn-sprite.gif);
|
||||
}
|
||||
.x-toolbar .xtb-sep {
|
||||
background-image: url(../images/gray/grid/grid-split.gif);
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
|
||||
.x-tab-panel-header, .x-tab-panel-footer {
|
||||
background: #EAEAEA;
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
|
||||
.x-tab-panel-header {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
.x-tab-panel-footer {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
ul.x-tab-strip-top{
|
||||
background:#dbdbdb url(../images/gray/tabs/tab-strip-bg.gif) repeat-x left top;
|
||||
border-color:#d0d0d0;
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
ul.x-tab-strip-bottom{
|
||||
background-image:url(../images/gray/tabs/tab-strip-btm-bg.gif);
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
.x-tab-strip span.x-tab-strip-text {
|
||||
color:#333;
|
||||
}
|
||||
.x-tab-strip-over span.x-tab-strip-text {
|
||||
color:#111;
|
||||
}
|
||||
|
||||
.x-tab-strip-active span.x-tab-strip-text {
|
||||
color:#333;
|
||||
}
|
||||
|
||||
.x-tab-strip-disabled .x-tabs-text {
|
||||
color:#aaaaaa;
|
||||
}
|
||||
|
||||
.x-tab-strip-top .x-tab-right {
|
||||
background-image:url(../images/gray/tabs/tabs-sprite.gif);
|
||||
}
|
||||
|
||||
.x-tab-strip-top .x-tab-left {
|
||||
background-image:url(../images/gray/tabs/tabs-sprite.gif);
|
||||
}
|
||||
.x-tab-strip-top .x-tab-strip-inner {
|
||||
background-image:url(../images/gray/tabs/tabs-sprite.gif);
|
||||
}
|
||||
|
||||
.x-tab-strip-bottom .x-tab-right {
|
||||
background-image:url(../images/gray/tabs/tab-btm-inactive-right-bg.gif);
|
||||
}
|
||||
|
||||
.x-tab-strip-bottom .x-tab-left {
|
||||
background-image:url(../images/gray/tabs/tab-btm-inactive-left-bg.gif);
|
||||
}
|
||||
|
||||
.x-tab-strip-bottom .x-tab-strip-active .x-tab-right {
|
||||
background-image:url(../images/gray/tabs/tab-btm-right-bg.gif);
|
||||
}
|
||||
|
||||
.x-tab-strip-bottom .x-tab-strip-active .x-tab-left {
|
||||
background-image:url(../images/gray/tabs/tab-btm-left-bg.gif);
|
||||
}
|
||||
|
||||
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
|
||||
background-image:url(../images/gray/tabs/tab-close.gif);
|
||||
}
|
||||
.x-tab-strip .x-tab-strip-closable a.x-tab-strip-close:hover{
|
||||
background-image:url(../images/gray/tabs/tab-close.gif);
|
||||
}
|
||||
|
||||
.x-tab-panel-body {
|
||||
border-color:#d0d0d0;
|
||||
background:#fff;
|
||||
}
|
||||
.x-tab-panel-bbar .x-toolbar {
|
||||
border-color: #d0d0d0;
|
||||
}
|
||||
|
||||
.x-tab-panel-tbar .x-toolbar {
|
||||
border-color: #d0d0d0;
|
||||
}
|
||||
|
||||
.x-tab-panel-header-plain .x-tab-strip-spacer {
|
||||
border-color:#d0d0d0;
|
||||
background: #eaeaea;
|
||||
}
|
||||
|
||||
.x-tab-scroller-left {
|
||||
background-image: url(../images/gray/tabs/scroll-left.gif);
|
||||
border-color:#aeaeae;
|
||||
}
|
||||
.x-tab-scroller-right {
|
||||
background-image: url(../images/gray/tabs/scroll-right.gif);
|
||||
border-color:#aeaeae;
|
||||
}
|
||||
|
||||
/* Window */
|
||||
|
||||
.x-window-proxy {
|
||||
background:#e0e0e0;
|
||||
border-color:#b0b0b0;
|
||||
}
|
||||
|
||||
.x-window-tl .x-window-header {
|
||||
color:#555;
|
||||
}
|
||||
.x-window-tc {
|
||||
background-image:url(../images/gray/window/top-bottom.png);
|
||||
}
|
||||
.x-window-tl {
|
||||
background-image:url(../images/gray/window/left-corners.png);
|
||||
}
|
||||
.x-window-tr {
|
||||
background-image:url(../images/gray/window/right-corners.png);
|
||||
}
|
||||
.x-window-bc {
|
||||
background-image:url(../images/gray/window/top-bottom.png);
|
||||
}
|
||||
.x-window-bl {
|
||||
background-image:url(../images/gray/window/left-corners.png);
|
||||
}
|
||||
.x-window-br {
|
||||
background-image:url(../images/gray/window/right-corners.png);
|
||||
}
|
||||
.x-window-mc {
|
||||
border:1px solid #d0d0d0;
|
||||
background:#e8e8e8;
|
||||
}
|
||||
.ext-ie .x-window-plain .x-window-mc {
|
||||
background-color: #e3e3e3;
|
||||
}
|
||||
|
||||
.x-window-ml {
|
||||
background-image:url(../images/gray/window/left-right.png);
|
||||
}
|
||||
.x-window-mr {
|
||||
background-image:url(../images/gray/window/left-right.png);
|
||||
}
|
||||
.x-panel-ghost .x-window-tl {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
.x-panel-collapsed .x-window-tl {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
.x-window-plain .x-window-mc {
|
||||
background: #e8e8e8;
|
||||
border-right:1px solid #eee;
|
||||
border-bottom:1px solid #eee;
|
||||
border-top:1px solid #d0d0d0;
|
||||
border-left:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
.x-window-plain .x-window-body {
|
||||
border-left:1px solid #eee;
|
||||
border-top:1px solid #eee;
|
||||
border-bottom:1px solid #d0d0d0;
|
||||
border-right:1px solid #d0d0d0;
|
||||
background:transparent !important;
|
||||
}
|
||||
|
||||
body.x-body-masked .x-window-mc, body.x-body-masked .x-window-plain .x-window-mc {
|
||||
background-color: #e4e4e4;
|
||||
}
|
||||
|
||||
|
||||
/* misc */
|
||||
.x-html-editor-wrap {
|
||||
border-color:#d0d0d0;
|
||||
}
|
||||
|
||||
/* Borders go last for specificity */
|
||||
.x-panel-noborder .x-panel-body-noborder {
|
||||
border-width:0;
|
||||
}
|
||||
|
||||
.x-panel-noborder .x-panel-header-noborder {
|
||||
border-width:0;
|
||||
border-bottom:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
.x-panel-noborder .x-panel-tbar-noborder .x-toolbar {
|
||||
border-width:0;
|
||||
border-bottom:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
.x-panel-noborder .x-panel-bbar-noborder .x-toolbar {
|
||||
border-width:0;
|
||||
border-top:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
.x-window-noborder .x-window-mc {
|
||||
border-width:0;
|
||||
}
|
||||
.x-window-plain .x-window-body-noborder {
|
||||
border-width:0;
|
||||
}
|
||||
|
||||
.x-tab-panel-noborder .x-tab-panel-body-noborder {
|
||||
border-width:0;
|
||||
}
|
||||
|
||||
.x-tab-panel-noborder .x-tab-panel-header-noborder {
|
||||
border-top-width:0;
|
||||
border-left-width:0;
|
||||
border-right-width:0;
|
||||
}
|
||||
|
||||
.x-tab-panel-noborder .x-tab-panel-footer-noborder {
|
||||
border-bottom-width:0;
|
||||
border-left-width:0;
|
||||
border-right-width:0;
|
||||
}
|
||||
|
||||
|
||||
.x-tab-panel-bbar-noborder .x-toolbar {
|
||||
border-width:0;
|
||||
border-top:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
.x-tab-panel-tbar-noborder .x-toolbar {
|
||||
border-width:0;
|
||||
border-bottom:1px solid #d0d0d0;
|
||||
}
|
||||
|
||||
.x-spinner-field .x-form-spinner-up {
|
||||
background-image: url('../images/gray/form/spinner.gif');
|
||||
}
|
||||
.x-spinner-field .x-form-spinner-down {
|
||||
background-image: url('../images/gray/form/spinner.gif');
|
||||
}.x-accordion-hd {
|
||||
background-color: #e5e5e5;
|
||||
}.x-border {
|
||||
border: 1px solid #D0D0D0;
|
||||
}
|
||||
|
||||
.x-layout-popup {
|
||||
background-color: #F0F0F0;
|
||||
border: 1px solid #D0D0D0;
|
||||
}
|
||||
|
||||
.my-list {
|
||||
border: 1px solid #D0D0D0;
|
||||
}
|
||||
|
||||
.x-view {
|
||||
border:1px solid #D0D0D0;
|
||||
}
|
||||
|
||||
.x-menubar {
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
background-image: url(../images/gray/toolbar/bg.gif);
|
||||
}
|
||||
|
||||
.x-menubar-item-active {
|
||||
background-color: #D9E8FB;
|
||||
}
|
||||
|
||||
.x-menubar-item-active {
|
||||
background-color: #D9E8FB;
|
||||
}.x-date-right-icon {
|
||||
background-image: url(../images/default/shared/right-btn.gif);
|
||||
margin-right: 2px;
|
||||
text-decoration: none !important;
|
||||
}
|
||||
|
||||
.x-date-left-icon {
|
||||
background-image: url(../images/default/shared/left-btn.gif);
|
||||
margin-right: 2px;
|
||||
text-decoration: none !important;
|
||||
}.my-tbl {
|
||||
border: 1px solid #C6C5C5;
|
||||
}.my-treetbl {
|
||||
border: 1px solid #C6C5C5;
|
||||
}
|
|
@ -0,0 +1,638 @@
|
|||
/*
|
||||
* Ext JS Library 2.1
|
||||
* Copyright(c) 2006-2008, Ext JS, LLC.
|
||||
* licensing@extjs.com
|
||||
*
|
||||
* http://extjs.com/license
|
||||
*/
|
||||
html,body {
|
||||
background: #3d71b8 url(../wallpapers/desktop.jpg) no-repeat left top;
|
||||
font: normal 12px tahoma, arial, verdana, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0 none;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.start {
|
||||
background-image: url( ../images/taskbar/black/startbutton-icon.gif ) !important;
|
||||
}
|
||||
|
||||
.bogus {
|
||||
background-image: url( ../images/bogus.png ) !important;
|
||||
}
|
||||
|
||||
.logout {
|
||||
background-image: url( ../images/logout.gif ) !important;
|
||||
}
|
||||
|
||||
.settings {
|
||||
background-image: url( ../images/gears.gif ) !important;
|
||||
}
|
||||
|
||||
#dpanels {
|
||||
width: 250px;
|
||||
float: right;
|
||||
}
|
||||
|
||||
#dpanels .x-panel {
|
||||
margin: 15px;
|
||||
}
|
||||
|
||||
#dpanels .x-date-picker {
|
||||
border: 0 none;
|
||||
border-top: 0 none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#dpanels .x-date-picker td.x-date-active {
|
||||
background: #ffffff;
|
||||
}
|
||||
|
||||
#dpanels .x-date-picker {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
#x-desktop {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border: 0 none;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn {
|
||||
float: left;
|
||||
margin: 1px 0 0 1px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#ux-taskbar-start .x-btn {
|
||||
float: left;
|
||||
margin: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#ux-taskbar button { /* width: 150px;
|
||||
overflow: hidden; */
|
||||
text-align: left;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#title-bar-wrapper {
|
||||
height: 35px;
|
||||
}
|
||||
|
||||
#title-bar {
|
||||
color: #225599;
|
||||
padding: 9px 7px;
|
||||
font: bold 16px tahoma, arial, verdana, sans-serif;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#x-logout {
|
||||
float: right;
|
||||
padding: 6px 7px;
|
||||
}
|
||||
|
||||
.x-btn-text-icon .x-btn-center .logout {
|
||||
background-position: 0pt 3px;
|
||||
background-repeat: no-repeat;
|
||||
padding: 3px 0pt 3px 18px;
|
||||
}
|
||||
|
||||
#ux-taskbar {
|
||||
background: transparent none;
|
||||
height: 30px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
z-index: 12001;
|
||||
}
|
||||
|
||||
.x-btn-icon .ux-taskbutton-center .x-btn-text {
|
||||
background-position: center;
|
||||
background-repeat: no-repeat;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.x-btn-icon .ux-taskbutton-center {
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.ux-startbutton-center .x-btn-text {
|
||||
color: #000000 !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ux-taskbutton-left,.ux-taskbutton-right {
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
.ux-taskbutton-left {
|
||||
width: 4px;
|
||||
height: 28px;
|
||||
background: url( ../images/taskbar/black/taskbutton.gif ) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ux-taskbutton-right {
|
||||
width: 4px;
|
||||
height: 28px;
|
||||
background: url( ../images/taskbar/black/taskbutton.gif ) no-repeat 0 -28px;
|
||||
}
|
||||
|
||||
.ux-taskbutton-left i,.ux-taskbutton-right i {
|
||||
display: block;
|
||||
width: 4px;
|
||||
overflow: hidden;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
.ux-taskbutton-center {
|
||||
background: url( ../images/taskbar/black/taskbutton.gif ) repeat-x 0 -56px;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
padding: 0 5px;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-taskbutton-left {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-taskbutton-right {
|
||||
background-position: 0 -28px;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-taskbutton-center {
|
||||
background-position: 0 -56px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-taskbutton-left {
|
||||
background-position: 0 -252px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-taskbutton-right {
|
||||
background-position: 0 -280px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-taskbutton-center {
|
||||
background-position: 0 -308px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-taskbutton-left {
|
||||
background-position: 0 -168px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-taskbutton-right {
|
||||
background-position: 0 -196px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-taskbutton-center {
|
||||
background-position: 0 -224px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-taskbutton-left {
|
||||
background-position: 0 -84px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-taskbutton-right {
|
||||
background: url( ../images/taskbar/black/taskbutton.gif ) no-repeat 0 -112px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-taskbutton-center {
|
||||
background: url( ../images/taskbar/black/taskbutton.gif ) repeat-x 0 -140px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-taskbutton-center button {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#spacer {
|
||||
height: 25px;
|
||||
float: left;
|
||||
width: 0;
|
||||
overflow: hidden;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.x-window-body p,.x-panel-body p {
|
||||
padding: 10px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.x-window-maximized .x-window-bc {
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.add {
|
||||
background-image: url(../../shared/icons/fam/add.gif) !important;
|
||||
}
|
||||
|
||||
.option {
|
||||
background-image: url(../../shared/icons/fam/plugin.gif) !important;
|
||||
}
|
||||
|
||||
.remove {
|
||||
background-image: url(../../shared/icons/fam/delete.gif) !important;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
background-image: url(../images/tabs.gif) !important;
|
||||
}
|
||||
|
||||
.ux-start-menu {
|
||||
background: transparent none;
|
||||
border: 0px none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.ux-start-menu-tl .x-window-header {
|
||||
color: #f1f1f1;
|
||||
font: bold 11px tahoma, arial, verdana, sans-serif;
|
||||
padding: 5px 0 4px 0;
|
||||
}
|
||||
|
||||
.x-panel-tl .x-panel-icon,.ux-start-menu-tl .x-panel-icon {
|
||||
background-position: 0pt 4px;
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.ux-start-menu-tl {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-left-corners.png ) no-repeat 0 0;
|
||||
padding-left: 6px;
|
||||
zoom: 1;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ux-start-menu-tr {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-right-corners.png ) no-repeat right
|
||||
0;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.ux-start-menu-tc {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-top-bottom.png ) repeat-x 0 0;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-ml {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-left-right.png ) repeat-y 0 0;
|
||||
padding-left: 6px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-bc {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-top-bottom.png ) repeat-x 0 bottom;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-bc .x-window-footer {
|
||||
padding-bottom: 6px;
|
||||
zoom: 1;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.ux-start-menu-bl {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-left-corners.png ) no-repeat 0
|
||||
bottom;
|
||||
padding-left: 6px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-br {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-right-corners.png ) no-repeat right
|
||||
bottom;
|
||||
padding-right: 6px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.x-panel-nofooter .ux-start-menu-bc {
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
.ux-start-menu-splitbar-h {
|
||||
background-color: #d0d0d0;
|
||||
}
|
||||
|
||||
.ux-start-menu-bwrap {
|
||||
background: transparent none;
|
||||
border: 0px none;
|
||||
}
|
||||
|
||||
.ux-start-menu-body {
|
||||
background: transparent none;
|
||||
border: 0px none;
|
||||
}
|
||||
|
||||
.ux-start-menu-apps-panel {
|
||||
background: #ffffff none;
|
||||
border: 1px solid #1e2124;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel {
|
||||
border: 0px none;
|
||||
background: transparent url( ../images/taskbar/black/start-menu-right.png ) repeat-y scroll right
|
||||
0pt;
|
||||
}
|
||||
|
||||
#ux-taskbar-start {
|
||||
background: #000000 url( ../images/taskbar/black/taskbar-start-panel-bg.gif ) repeat-x left top;
|
||||
left: 0px;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#ux-taskbar-start .x-toolbar {
|
||||
background: none;
|
||||
padding: 0px;
|
||||
border: 0px none;
|
||||
}
|
||||
|
||||
#ux-taskbuttons-panel {
|
||||
background: #000000 url( ../images/taskbar/black/taskbuttons-panel-bg.gif ) repeat-x left top;
|
||||
padding-top: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-strip-wrap { /* overflow:hidden;
|
||||
position:relative;
|
||||
width:100%; */
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
ul.ux-taskbuttons-strip {
|
||||
display: block;
|
||||
width: 5000px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
ul.ux-taskbuttons-strip li {
|
||||
float: left;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
ul.ux-taskbuttons-strip li.ux-taskbuttons-edge {
|
||||
float: left;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: 0 none !important;
|
||||
font-size: 1px !important;
|
||||
line-height: 1px !important;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
background: transparent !important;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.x-clear {
|
||||
clear: both;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
line-height: 0;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.x-taskbuttons-scrolling {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.x-taskbuttons-scrolling .ux-taskbuttons-strip-wrap {
|
||||
margin-left: 18px;
|
||||
margin-right: 18px;
|
||||
}
|
||||
|
||||
td.ux-taskButtons-edge { /*float:left;*/
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: 0 none !important;
|
||||
font-size: 1px !important;
|
||||
line-height: 1px !important;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
background: transparent !important;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-left {
|
||||
background: transparent url( ../images/taskbar/black/scroll-left.gif ) no-repeat -18px 0;
|
||||
width: 18px;
|
||||
position: absolute;
|
||||
left: 1px;
|
||||
top: 0px;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-left-over {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-left-disabled {
|
||||
background-position: -18px 0;
|
||||
opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-right {
|
||||
background: transparent url( ../images/taskbar/black/scroll-right.gif ) no-repeat 0 0;
|
||||
width: 18px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0px;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-right-over {
|
||||
background-position: -18px 0;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-right-disabled {
|
||||
background-position: 0 0;
|
||||
opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ux-toolmenu-sep {
|
||||
background-color: #18191a;
|
||||
border-bottom: 1px solid #858789;
|
||||
display: block;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
margin: 2px 3px;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel ul.x-menu-list li.x-menu-list-item a.x-menu-item {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel ul.x-menu-list li.x-menu-list-item .x-menu-item-active a.x-menu-item {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel .x-menu-item-active {
|
||||
background: #525456 url( ../images/taskbar/black/item-over.gif ) repeat-x left bottom;
|
||||
border: 1px solid #000000;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-splitbar-h {
|
||||
background: #000000 url( ../images/taskbar/black/taskbar-split-h.gif ) no-repeat 0 0;
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
.x-window-header-text {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/*
|
||||
* Begin Start button
|
||||
*/
|
||||
.ux-startbutton-left,.ux-startbutton-right {
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
.ux-startbutton-left {
|
||||
width: 10px;
|
||||
height: 28px;
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ux-startbutton-right {
|
||||
width: 10px;
|
||||
height: 30px;
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 -28px;
|
||||
}
|
||||
|
||||
.ux-startbutton-left i,.ux-startbutton-right i {
|
||||
display: block;
|
||||
width: 10px;
|
||||
overflow: hidden;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
.ux-startbutton-center {
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) repeat-x 0 -56px;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-startbutton-left {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-startbutton-right {
|
||||
background-position: 0 -30px;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-startbutton-center {
|
||||
background-position: 0 -60px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-startbutton-left {
|
||||
background-position: 0 -270px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-startbutton-right {
|
||||
background-position: 0 -300px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-startbutton-center {
|
||||
background-position: 0 -330px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-startbutton-left {
|
||||
background-position: 0 -180px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-startbutton-right {
|
||||
background-position: 0 -210px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-startbutton-center {
|
||||
background-position: 0 -240px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-left {
|
||||
background-position: 0 -90px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-right {
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 -120px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-center {
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) repeat-x 0 -150px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-center button {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/*
|
||||
* End Start button
|
||||
*/
|
||||
.x-resizable-proxy {
|
||||
background: #C7DFFC;
|
||||
opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
border: 1px solid #3b5a82;
|
||||
}
|
||||
|
||||
/* Desktop Shortcuts */
|
||||
#x-shortcuts dt {
|
||||
float: left;
|
||||
margin: 15px 0 0 15px;
|
||||
clear: left;
|
||||
width: 64px;
|
||||
font: normal 10px tahoma, arial, verdana, sans-serif;
|
||||
text-align: center;
|
||||
zoom: 1;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#x-shortcuts dt a {
|
||||
width: 64px;
|
||||
display: block;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#x-shortcuts dt div {
|
||||
width: 100%;
|
||||
color: white;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#x-shortcuts dt a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 996 B |
After Width: | Height: | Size: 967 B |
After Width: | Height: | Size: 513 B |
After Width: | Height: | Size: 842 B |
After Width: | Height: | Size: 992 B |
After Width: | Height: | Size: 808 B |
After Width: | Height: | Size: 400 B |
After Width: | Height: | Size: 191 B |
After Width: | Height: | Size: 944 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 920 B |
After Width: | Height: | Size: 505 B |
After Width: | Height: | Size: 972 B |
After Width: | Height: | Size: 832 B |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 43 B |
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 206 B |
After Width: | Height: | Size: 143 B |
After Width: | Height: | Size: 224 B |
After Width: | Height: | Size: 141 B |
After Width: | Height: | Size: 158 B |
After Width: | Height: | Size: 748 B |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 327 B |
After Width: | Height: | Size: 890 B |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 195 B |
After Width: | Height: | Size: 888 B |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 830 B |
After Width: | Height: | Size: 82 KiB |
After Width: | Height: | Size: 1010 B |
After Width: | Height: | Size: 1005 B |
After Width: | Height: | Size: 810 B |
After Width: | Height: | Size: 810 B |
After Width: | Height: | Size: 810 B |
After Width: | Height: | Size: 810 B |
After Width: | Height: | Size: 851 B |
After Width: | Height: | Size: 839 B |
After Width: | Height: | Size: 828 B |