Massimiliano Assante 11 years ago
parent 5823450692
commit a728f1d313

@ -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("&gt;", ">");
epr = epr.replace("&lt;", "<");
epr = epr.replace("&quot;", "\"");
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,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");
}

File diff suppressed because it is too large Load Diff

@ -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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 839 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save