Initial import.
git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/admin/vre-definition@82238 82a268e6-3cf1-43bd-a215-b396298e98cf
|
@ -0,0 +1,40 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/vre-definition-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="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/J2SE-1.5">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER/GWT (5)"/>
|
||||
<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 excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/vre-definition-3.0.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
</classpath>
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>vre-definition</name>
|
||||
<comment>vre-definition 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-definition/target/vre-definition-3.0.0-SNAPSHOT
|
||||
warSrcDir=src/main/webapp
|
||||
warSrcDirIsOutput=false
|
|
@ -0,0 +1,4 @@
|
|||
eclipse.preferences.version=1
|
||||
entryPointModules=org.gcube.portlets.admin.vredefinition.VREDefinition
|
||||
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.5
|
||||
org.eclipse.jdt.core.compiler.compliance=1.5
|
||||
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.5
|
|
@ -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-definition"/>
|
||||
</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.5"/>
|
||||
</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-definition/src/test/java/org/gcube/portlets/admin/vredefinition/client/GwtTestVREDefinition.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.vredefinition.client.GwtTestVREDefinition"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="vre-definition"/>
|
||||
</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-definition/src/test/java/org/gcube/portlets/admin/vredefinition/client/GwtTestVREDefinition.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.vredefinition.client.GwtTestVREDefinition"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="vre-definition"/>
|
||||
</launchConfiguration>
|
|
@ -0,0 +1,231 @@
|
|||
<?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-definition</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>
|
||||
<!-- Google Web Toolkit (GWT) -->
|
||||
<dependency>
|
||||
<groupId>com.google.gwt</groupId>
|
||||
<artifactId>gwt-user</artifactId>
|
||||
<!-- "provided" so that we don't deploy -->
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<!-- 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>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>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>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.5</source>
|
||||
<target>1.5</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,371 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.BackButtonEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.BackButtonEventHandler;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.ExternalResourceSelectionEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.ExternalResourceSelectionEventHandler;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.NextButtonEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.NextButtonEventHandler;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.TreeNodeFunctionalityEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.TreeNodeFunctionalityEventHandler;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.TreeNodeWizardMenuEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.TreeNodeWizardMenuEventHandler;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREDefinitionModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.WizardStepType;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.Presenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREDefinitionPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREDescriptionPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREFinishWizardPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREFunctionalitiesPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREInfoFunctionalitiesPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.WizardActionsPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.WizardMenuViewPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.VREDefinitionView;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.VREDescriptionView;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.VREFinishWizardView;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.VREFunctionalitiesView;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.VREInfoFunctionalitiesView;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.WizardActionsView;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.WizardMenuView;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||
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.RootPanel;
|
||||
|
||||
|
||||
public class AppController {
|
||||
|
||||
private final VREDefinitionModel vreModel = new VREDefinitionModel();
|
||||
|
||||
private final HandlerManager eventBus;
|
||||
|
||||
private VREDefinitionPresenter vreDefPresenter;
|
||||
private Presenter upCenterPanelPresenter;
|
||||
private WizardActionsPresenter wizardActionsPresenter;
|
||||
private WizardMenuViewPresenter wizardMenuPresenter;
|
||||
|
||||
private RootPanel container;
|
||||
|
||||
private HashMap<String, List<ExternalResourceModel>> funcToExternalResources = new HashMap<String, List<ExternalResourceModel>>();
|
||||
|
||||
public List<ExternalResourceModel> getExtResourcesFromApp(String funcId) {
|
||||
return funcToExternalResources.get(funcId);
|
||||
}
|
||||
|
||||
public HandlerManager getBus() {
|
||||
return eventBus;
|
||||
}
|
||||
|
||||
private static AppController singleton;
|
||||
|
||||
public static AppController getAppController() {
|
||||
return singleton;
|
||||
}
|
||||
|
||||
private final VREDefinitionServiceAsync rpcService;
|
||||
|
||||
public AppController(VREDefinitionServiceAsync rpcService, HandlerManager eventBus) {
|
||||
singleton = this;
|
||||
this.rpcService = rpcService;
|
||||
this.eventBus = eventBus;
|
||||
bind();
|
||||
}
|
||||
|
||||
public void go(RootPanel container) {
|
||||
|
||||
this.container = container;
|
||||
|
||||
final VREDefinitionView mainView = new VREDefinitionView();
|
||||
vreDefPresenter = new VREDefinitionPresenter(mainView);
|
||||
mainView.mask("Loading data ....");
|
||||
vreDefPresenter.go(container);
|
||||
updateSize();
|
||||
|
||||
rpcService.isEditMode(new AsyncCallback<Map<String,Object>>() {
|
||||
public void onFailure(Throwable arg0) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
public void onSuccess(Map<String, Object> map) {
|
||||
|
||||
if(map != null) {
|
||||
vreModel.setEditMode();
|
||||
VREFunctionalityModel functionalities = (VREFunctionalityModel)map.get("functionalities");
|
||||
vreModel.setVREFunctionalities(functionalities.getChildren());
|
||||
}
|
||||
|
||||
WizardActionsView bottomView = new WizardActionsView(mainView.getBottomCenterPanel());
|
||||
wizardActionsPresenter = new WizardActionsPresenter(eventBus, bottomView);
|
||||
wizardActionsPresenter.go(mainView.getBottomCenterPanel());
|
||||
wizardActionsPresenter.setStepWizard(vreModel.getWizardStep());
|
||||
|
||||
mainView.unmask();
|
||||
goStepWizard();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void bind() {
|
||||
eventBus.addHandler(ExternalResourceSelectionEvent.TYPE, new ExternalResourceSelectionEventHandler() {
|
||||
|
||||
public void onSelectedExternalResources(ExternalResourceSelectionEvent event) {
|
||||
funcToExternalResources.put(event.getFunctionalityModel().getId(), event.getAssociatedExternalResources());
|
||||
GWT.log("PUT: " + event.getFunctionalityModel()+ " ID->" + event.getFunctionalityModel().getId());
|
||||
for (ExternalResourceModel extRes : event.getAssociatedExternalResources()) {
|
||||
GWT.log(extRes.getName()+extRes.getId()+extRes.isSelected());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
eventBus.addHandler(NextButtonEvent.TYPE, new NextButtonEventHandler() {
|
||||
|
||||
public void onNextButton(NextButtonEvent event) {
|
||||
|
||||
if(vreModel.getWizardStep() == WizardStepType.VREDefinitionEnd)
|
||||
showCreateVREConfirm();
|
||||
else
|
||||
goNextStepWizard();
|
||||
}
|
||||
});
|
||||
|
||||
eventBus.addHandler(BackButtonEvent.TYPE, new BackButtonEventHandler(){
|
||||
|
||||
public void onBackButton(BackButtonEvent event) {
|
||||
goBackStepWizard();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
eventBus.addHandler(TreeNodeWizardMenuEvent.TYPE, new TreeNodeWizardMenuEventHandler() {
|
||||
|
||||
public void onClick(TreeNodeWizardMenuEvent event) {
|
||||
|
||||
if(upCenterPanelPresenter.doSave())
|
||||
vreModel.setWizardStep(event.getStepModel().getType());
|
||||
goStepWizard();
|
||||
}
|
||||
});
|
||||
|
||||
eventBus.addHandler(TreeNodeFunctionalityEvent.TYPE, new TreeNodeFunctionalityEventHandler() {
|
||||
public void onClick(TreeNodeFunctionalityEvent event) {
|
||||
VREFunctionalityModel functionality = event.getFunctionalityModel();
|
||||
vreDefPresenter.display.getEastPanel().setExpanded(true);
|
||||
vreDefPresenter.display.getEastPanel().setVisible(true);
|
||||
|
||||
|
||||
VREInfoFunctionalitiesPresenter infoPresenter = new VREInfoFunctionalitiesPresenter(
|
||||
new VREInfoFunctionalitiesView(functionality, rpcService));
|
||||
|
||||
infoPresenter.go(vreDefPresenter.display.getEastPanel());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
Window.addResizeHandler(new ResizeHandler() {
|
||||
|
||||
public void onResize(ResizeEvent event) {
|
||||
|
||||
updateSize();
|
||||
|
||||
WizardActionsView bottomView = new WizardActionsView(vreDefPresenter.display.getBottomCenterPanel());
|
||||
wizardActionsPresenter = new WizardActionsPresenter(eventBus, bottomView);
|
||||
wizardActionsPresenter.go(vreDefPresenter.display.getBottomCenterPanel());
|
||||
|
||||
goStepWizard();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public void updateSize() {
|
||||
|
||||
int topBorder = container.getAbsoluteTop();
|
||||
int leftBorder = container.getAbsoluteLeft();
|
||||
|
||||
int rootHeight = Window.getClientHeight() - topBorder;
|
||||
int rootWidth = Window.getClientWidth() - 2* leftBorder;
|
||||
vreDefPresenter.display.asWidget().setHeight(String.valueOf(rootHeight - 40));
|
||||
vreDefPresenter.display.asWidget().setWidth(String.valueOf(rootWidth - 20));
|
||||
vreDefPresenter.display.getUpContainer().setSize(rootWidth - 25, rootHeight - 80);
|
||||
vreDefPresenter.display.getBottomCenterPanel().setSize(rootWidth - 25, 48);
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void goNextStepWizard(){
|
||||
|
||||
if(upCenterPanelPresenter.doSave())
|
||||
vreModel.setNextStep();
|
||||
|
||||
goStepWizard();
|
||||
}
|
||||
|
||||
private void goStepWizard() {
|
||||
|
||||
WizardStepType step = vreModel.getWizardStep();
|
||||
vreDefPresenter.display.getEastPanel().setVisible(false);
|
||||
|
||||
switch (step) {
|
||||
case VREDescription:
|
||||
upCenterPanelPresenter = new VREDescriptionPresenter(rpcService,
|
||||
vreModel,new VREDescriptionView());
|
||||
|
||||
break;
|
||||
case VREFunctionalities: {
|
||||
upCenterPanelPresenter = new VREFunctionalitiesPresenter(rpcService,
|
||||
vreModel, eventBus,new VREFunctionalitiesView());
|
||||
|
||||
|
||||
VREInfoFunctionalitiesPresenter infoPresenter = new VREInfoFunctionalitiesPresenter(
|
||||
new VREInfoFunctionalitiesView());
|
||||
|
||||
infoPresenter.go(vreDefPresenter.display.getEastPanel());
|
||||
}
|
||||
break;
|
||||
case VREDefinitionEnd:
|
||||
upCenterPanelPresenter = new VREFinishWizardPresenter(new VREFinishWizardView(vreModel.getVREDescriptionBean(), vreModel.getVREFunctionalities()));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
upCenterPanelPresenter.go(vreDefPresenter.display.getUpCenterPanel());
|
||||
|
||||
wizardMenuPresenter = new WizardMenuViewPresenter(eventBus,
|
||||
new WizardMenuView(vreModel.getWizardStepModel()));
|
||||
wizardMenuPresenter.go(vreDefPresenter.display.getwestPanel());
|
||||
|
||||
wizardActionsPresenter.setStepWizard(step);
|
||||
|
||||
}
|
||||
|
||||
private void goBackStepWizard(){
|
||||
vreModel.setBackStep();
|
||||
goStepWizard();
|
||||
}
|
||||
|
||||
private void showCreateVREConfirm() {
|
||||
|
||||
MessageBox.confirm("Confirm",
|
||||
" The current VRE Definition will be stored in the infrastructure waiting for approval",new Listener<MessageBoxEvent>() {
|
||||
public void handleEvent(MessageBoxEvent ce) {
|
||||
Button btn = ce.getButtonClicked();
|
||||
if(btn.getText().equals("Yes"))
|
||||
createVRE();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void createVRE() {
|
||||
|
||||
if(!validateVREDescription())
|
||||
return;
|
||||
|
||||
List<ModelData> items = validateVREFunctionalitiesSelected();
|
||||
if(items == null || items.isEmpty())
|
||||
return;
|
||||
|
||||
List<String> categoriesIDs = new ArrayList<String>();
|
||||
List<String> functionalitiesIDs = new ArrayList<String>();
|
||||
for(ModelData item : items) {
|
||||
VREFunctionalityModel func = (VREFunctionalityModel)item;
|
||||
if(func.getChildCount() > 0) {
|
||||
|
||||
categoriesIDs.add(func.getId());
|
||||
} else {
|
||||
functionalitiesIDs.add(func.getId());
|
||||
}
|
||||
}
|
||||
String[] functionalities = functionalitiesIDs.toArray(new String[functionalitiesIDs.size()]);
|
||||
|
||||
rpcService.setVRE(vreModel.getVREDescriptionBean(), functionalities, funcToExternalResources, new AsyncCallback<String>() {
|
||||
|
||||
public void onSuccess(String arg0) {
|
||||
|
||||
MessageBox.info("VRE Definition", "The VRE is stored on Service for approving", null);
|
||||
|
||||
vreDefPresenter.display.getBottomCenterPanel().setVisible(false);
|
||||
vreDefPresenter.display.getwestPanel().setVisible(false);
|
||||
|
||||
int topBorder = container.getAbsoluteTop();
|
||||
int leftBorder = container.getAbsoluteLeft();
|
||||
|
||||
int rootHeight = Window.getClientHeight() - topBorder;
|
||||
int rootWidth = Window.getClientWidth() - 2* leftBorder;
|
||||
vreDefPresenter.display.asWidget().setHeight(String.valueOf(rootHeight - 40));
|
||||
vreDefPresenter.display.asWidget().setWidth(String.valueOf(rootWidth - 20));
|
||||
vreDefPresenter.display.getUpContainer().setSize(rootWidth - 25, rootHeight - 40);
|
||||
upCenterPanelPresenter.display().setSize(String.valueOf(rootWidth - 35), String.valueOf(rootHeight - 80));
|
||||
}
|
||||
|
||||
public void onFailure(Throwable arg0) {
|
||||
MessageBox.alert("VRE Definition", "Error ...", null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean validateVREDescription(){
|
||||
|
||||
VREDescriptionBean bean = vreModel.getVREDescriptionBean();
|
||||
boolean check = true;
|
||||
if(bean.getName() == null || bean.getName().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getDescription() == null || bean.getDescription().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getDesigner() == null || bean.getDesigner().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getManager() == null || bean.getManager().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getStartTime() == null)
|
||||
check = false;
|
||||
if(bean.getEndTime() == null)
|
||||
check = false;
|
||||
|
||||
if(!check) {
|
||||
vreModel.setWizardStep(WizardStepType.VREDescription);
|
||||
goStepWizard();
|
||||
|
||||
|
||||
}
|
||||
|
||||
return check;
|
||||
}
|
||||
|
||||
private List<ModelData> validateVREFunctionalitiesSelected() {
|
||||
|
||||
List<ModelData> items = new ArrayList<ModelData>();
|
||||
List<ModelData> categories = vreModel.getVREFunctionalities();
|
||||
for(ModelData category : categories) {
|
||||
for(ModelData func : ((VREFunctionalityModel)category).getChildren())
|
||||
if (((VREFunctionalityModel)func).isSelected()){
|
||||
items.add(func);
|
||||
}
|
||||
}
|
||||
|
||||
if(items.isEmpty()) {
|
||||
vreModel.setWizardStep(WizardStepType.VREFunctionalities);
|
||||
goStepWizard();
|
||||
MessageBox.alert("Alert", "Please, select at least one Functionality", null);
|
||||
}
|
||||
return items;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.portlets.admin.vredefinition.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;
|
||||
|
||||
/**
|
||||
* @author gioia
|
||||
*
|
||||
*/
|
||||
public class VREDefinition implements EntryPoint {
|
||||
|
||||
public static final String CONTAINER_DIV = "VREDefinitionDIV";
|
||||
|
||||
public void onModuleLoad() {
|
||||
|
||||
HandlerManager eventBus = new HandlerManager(null);
|
||||
VREDefinitionServiceAsync rpcService = GWT.create(VREDefinitionService.class);
|
||||
AppController appController = new AppController(rpcService,eventBus);
|
||||
|
||||
|
||||
appController.go(RootPanel.get(CONTAINER_DIV));
|
||||
|
||||
|
||||
// RootPanel.get(CONTAINER_DIV).add(view);
|
||||
|
||||
//updateSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* updateSize
|
||||
*/
|
||||
public void updateSize() {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.exception.VREDefinitionException;
|
||||
|
||||
import com.google.gwt.user.client.rpc.RemoteService;
|
||||
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
|
||||
|
||||
@RemoteServiceRelativePath("VREDefinitionServiceImpl")
|
||||
public interface VREDefinitionService extends RemoteService {
|
||||
ArrayList<ExternalResourceModel> getResourceCategoryByFunctionality(String funcId);
|
||||
/**
|
||||
* @return VRE Existing Names
|
||||
*/
|
||||
String[] getExistingNames();
|
||||
|
||||
Map<String, Object> getVRE() throws VREDefinitionException;
|
||||
|
||||
/**
|
||||
* @param name VRE name
|
||||
* @param description VRE description
|
||||
* @param designer VRE designer
|
||||
* @param manager VRE manager
|
||||
* @param fromDate VRE start date
|
||||
* @param toDate VRE end date
|
||||
* @return OK string if the operation is performed correctly
|
||||
* @throws VREDefinitionException
|
||||
*/
|
||||
String setVRE(VREDescriptionBean bean, String[] functionalityIDs, HashMap<String, List<ExternalResourceModel>> funcToExternalResources) throws VREDefinitionException;
|
||||
|
||||
|
||||
VREFunctionalityModel getFunctionality(boolean isEdit) throws VREDefinitionException;
|
||||
|
||||
Map<String,Object> isEditMode();
|
||||
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
|
||||
public interface VREDefinitionServiceAsync {
|
||||
|
||||
void getExistingNames(AsyncCallback<String[]> callback);
|
||||
|
||||
void setVRE(
|
||||
VREDescriptionBean bean,
|
||||
String[] functionalityIDs,
|
||||
HashMap<String, List<ExternalResourceModel>> funcToExternalResources,
|
||||
AsyncCallback<String> callback);
|
||||
|
||||
void getFunctionality(boolean isEdit,
|
||||
AsyncCallback<VREFunctionalityModel> callback);
|
||||
|
||||
void getVRE(AsyncCallback<Map<String, Object>> callback);
|
||||
|
||||
void isEditMode(AsyncCallback<Map<String, Object>> callback);
|
||||
|
||||
void getResourceCategoryByFunctionality(String funcId,
|
||||
AsyncCallback<ArrayList<ExternalResourceModel>> callback);
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
|
||||
public class BackButtonEvent extends GwtEvent<BackButtonEventHandler> {
|
||||
public static GwtEvent.Type<BackButtonEventHandler> TYPE = new Type<BackButtonEventHandler>();
|
||||
|
||||
@Override
|
||||
protected void dispatch(BackButtonEventHandler handler) {
|
||||
// TODO Auto-generated method stub
|
||||
System.out.println("Dispatch event");
|
||||
handler.onBackButton(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<BackButtonEventHandler> getAssociatedType() {
|
||||
// TODO Auto-generated method stub
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
public interface BackButtonEventHandler extends EventHandler {
|
||||
void onBackButton(BackButtonEvent event);
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
* @version 0.2 Sep 2012
|
||||
*
|
||||
*/
|
||||
public class ExternalResourceSelectionEvent extends GwtEvent<ExternalResourceSelectionEventHandler>{
|
||||
|
||||
public static Type<ExternalResourceSelectionEventHandler> TYPE = new Type<ExternalResourceSelectionEventHandler>();
|
||||
private VREFunctionalityModel functionality;
|
||||
private List<ExternalResourceModel> associatedExternalResources;
|
||||
|
||||
public ExternalResourceSelectionEvent(VREFunctionalityModel functionality, List<ExternalResourceModel> resources) {
|
||||
this.functionality = functionality;
|
||||
this.associatedExternalResources = resources;
|
||||
}
|
||||
|
||||
public List<ExternalResourceModel> getAssociatedExternalResources() {
|
||||
return associatedExternalResources;
|
||||
}
|
||||
|
||||
public VREFunctionalityModel getFunctionalityModel() {
|
||||
return functionality;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(ExternalResourceSelectionEventHandler handler) {
|
||||
handler.onSelectedExternalResources(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<ExternalResourceSelectionEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
* @version 0.2 Sep 2012
|
||||
*
|
||||
*/
|
||||
public interface ExternalResourceSelectionEventHandler extends EventHandler {
|
||||
|
||||
void onSelectedExternalResources(ExternalResourceSelectionEvent event);
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
public class NextButtonEvent extends GwtEvent<NextButtonEventHandler> {
|
||||
public static Type<NextButtonEventHandler> TYPE = new Type<NextButtonEventHandler>();
|
||||
|
||||
@Override
|
||||
protected void dispatch(NextButtonEventHandler handler) {
|
||||
handler.onNextButton(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<NextButtonEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
public interface NextButtonEventHandler extends EventHandler {
|
||||
void onNextButton(NextButtonEvent event);
|
||||
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
|
||||
public class TreeNodeFunctionalityEvent extends GwtEvent<TreeNodeFunctionalityEventHandler>{
|
||||
|
||||
public static Type<TreeNodeFunctionalityEventHandler> TYPE = new Type<TreeNodeFunctionalityEventHandler>();
|
||||
private VREFunctionalityModel functionality;
|
||||
|
||||
public TreeNodeFunctionalityEvent(VREFunctionalityModel functionality) {
|
||||
this.functionality = functionality;
|
||||
}
|
||||
|
||||
public VREFunctionalityModel getFunctionalityModel() {
|
||||
return functionality;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(TreeNodeFunctionalityEventHandler handler) {
|
||||
handler.onClick(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<TreeNodeFunctionalityEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
public interface TreeNodeFunctionalityEventHandler extends EventHandler {
|
||||
|
||||
void onClick(TreeNodeFunctionalityEvent event);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.WizardStepModel;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
|
||||
public class TreeNodeWizardMenuEvent extends GwtEvent<TreeNodeWizardMenuEventHandler>{
|
||||
|
||||
public static Type<TreeNodeWizardMenuEventHandler> TYPE = new Type<TreeNodeWizardMenuEventHandler>();
|
||||
private WizardStepModel step;
|
||||
|
||||
public TreeNodeWizardMenuEvent(WizardStepModel step) {
|
||||
this.step = step;
|
||||
}
|
||||
|
||||
public WizardStepModel getStepModel() {
|
||||
return step;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispatch(TreeNodeWizardMenuEventHandler handler) {
|
||||
handler.onClick(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type<TreeNodeWizardMenuEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
public interface TreeNodeWizardMenuEventHandler extends EventHandler{
|
||||
|
||||
void onClick(TreeNodeWizardMenuEvent event);
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.model;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
|
||||
|
||||
public class VREDefinitionModel {
|
||||
|
||||
private VREDescriptionBean VREDescription;
|
||||
private List<ModelData> VREFunctionalitiesSelected;
|
||||
private WizardStepModel steps;
|
||||
private WizardStepType stepSelected;
|
||||
|
||||
public VREDefinitionModel() {
|
||||
steps = new WizardStepModel("root","info-icon",WizardStepType.VREDefinitionStart);
|
||||
steps.add(new WizardStepModel("Info","info-icon",WizardStepType.VREDescription));
|
||||
|
||||
stepSelected = WizardStepType.VREDescription;
|
||||
}
|
||||
|
||||
public void setEditMode() {
|
||||
steps.add(new WizardStepModel("Functionalities","functionality-icon",WizardStepType.VREFunctionalities));
|
||||
steps.add(new WizardStepModel("Summary","report-icon",WizardStepType.VREDefinitionEnd));
|
||||
}
|
||||
|
||||
public void setVREDescription(VREDescriptionBean bean){
|
||||
this.VREDescription = bean;
|
||||
}
|
||||
|
||||
public VREDescriptionBean getVREDescriptionBean() {
|
||||
return VREDescription;
|
||||
}
|
||||
|
||||
public void setVREFunctionalities(List<ModelData> list) {
|
||||
this.VREFunctionalitiesSelected = list;
|
||||
}
|
||||
|
||||
public List<ModelData> getVREFunctionalities() {
|
||||
return VREFunctionalitiesSelected;
|
||||
}
|
||||
|
||||
public void setNextStep() {
|
||||
|
||||
int step = stepSelected.ordinal();
|
||||
step++;
|
||||
addStep(step);
|
||||
stepSelected = WizardStepType.values()[step];
|
||||
}
|
||||
|
||||
private void addStep(int step) {
|
||||
|
||||
if (steps.getChildren().size() >= step)
|
||||
return;
|
||||
|
||||
WizardStepType type = WizardStepType.values()[step];
|
||||
switch(type){
|
||||
case VREDescription:
|
||||
steps.add(new WizardStepModel("Info","info-icon",WizardStepType.VREDescription));
|
||||
break;
|
||||
case VREFunctionalities:
|
||||
steps.add(new WizardStepModel("Functionalities","functionality-icon",WizardStepType.VREFunctionalities));
|
||||
break;
|
||||
case VREDefinitionEnd:
|
||||
steps.add(new WizardStepModel("Summary","report-icon",WizardStepType.VREDefinitionEnd));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void setBackStep() {
|
||||
stepSelected = WizardStepType.values()[stepSelected.ordinal() - 1];
|
||||
}
|
||||
|
||||
public WizardStepModel getWizardStepModel() {
|
||||
return steps;
|
||||
}
|
||||
|
||||
public WizardStepType getWizardStep() {
|
||||
return stepSelected;
|
||||
}
|
||||
|
||||
public void setWizardStep(WizardStepType step) {
|
||||
this.stepSelected = step;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.model;
|
||||
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseTreeModel;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class VREFunctionalityModel extends BaseTreeModel{
|
||||
|
||||
|
||||
public VREFunctionalityModel() {
|
||||
|
||||
}
|
||||
/**
|
||||
* @param node
|
||||
* @param description
|
||||
* @param icon
|
||||
*/
|
||||
public VREFunctionalityModel(String id, String node, String description, String icon, boolean isSelected) {
|
||||
set("id",id);
|
||||
set("node", node);
|
||||
set("name", node);
|
||||
set("description", description);
|
||||
set("icon", icon);
|
||||
set("isSelected", isSelected);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param children
|
||||
*/
|
||||
public void addChildren(VREFunctionalityModel[] children) {
|
||||
for (int i = 0; i < children.length; i++) {
|
||||
add(children[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return (String) get("id");
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return (String) get("name");
|
||||
}
|
||||
|
||||
public String getNode() {
|
||||
return (String) get("node");
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return (String) get("description");
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
|
||||
public boolean isSelected() {
|
||||
return ((Boolean) get("isSelected")).booleanValue();
|
||||
}
|
||||
|
||||
public void setSelected(boolean selected) {
|
||||
set("isSelected", selected);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.model;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseTreeModel;
|
||||
|
||||
public class WizardStepModel extends BaseTreeModel {
|
||||
|
||||
private WizardStepType type;
|
||||
public WizardStepModel(String name, String icon, WizardStepType type) {
|
||||
|
||||
setName(name);
|
||||
setType(type);
|
||||
setIcon(icon);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return get("name");
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
set("name", name);
|
||||
}
|
||||
|
||||
public WizardStepType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(WizardStepType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setIcon(String icon) {
|
||||
set("icon",icon);
|
||||
}
|
||||
|
||||
public String getIcon() {
|
||||
return get("icon");
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.model;
|
||||
|
||||
public enum WizardStepType {
|
||||
|
||||
VREDefinitionStart,
|
||||
VREDescription,
|
||||
VREFunctionalities,
|
||||
VREDefinitionEnd;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
|
||||
|
||||
public interface Presenter {
|
||||
|
||||
public void go(LayoutContainer container);
|
||||
public boolean doSave();
|
||||
public Widget display();
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.VREDefinitionServiceAsync;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREDescriptionPresenter.Display;
|
||||
import org.gcube.portlets.admin.vredefinition.client.view.WizardMenuView;
|
||||
import org.gcube.portlets.user.gcubewidgets.client.GCubePanel;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
||||
import com.google.gwt.event.logical.shared.ResizeEvent;
|
||||
import com.google.gwt.event.logical.shared.ResizeHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class VREDefinitionPresenter {
|
||||
|
||||
public interface Display {
|
||||
LayoutContainer getUpCenterPanel();
|
||||
LayoutContainer getwestPanel();
|
||||
ToolBar getBottomCenterPanel();
|
||||
LayoutContainer getUpContainer();
|
||||
ContentPanel getEastPanel();
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
public final Display display;
|
||||
private RootPanel container;
|
||||
|
||||
public VREDefinitionPresenter(Display display) {
|
||||
this.display = display;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void go(RootPanel container) {
|
||||
this.container = container;
|
||||
|
||||
container.clear();
|
||||
GCubePanel mainPanel = new GCubePanel("Defining the Virtual Research Environment",
|
||||
"https://gcube.wiki.gcube-system.org/gcube/index.php/VRE_Administration#VRE_Definition");
|
||||
// updateSize();
|
||||
mainPanel.add(display.asWidget());
|
||||
container.add(mainPanel);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.VREDefinitionServiceAsync;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREDefinitionModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseModel;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
||||
import com.extjs.gxt.ui.client.widget.form.DateField;
|
||||
import com.extjs.gxt.ui.client.widget.form.TextArea;
|
||||
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
|
||||
|
||||
public class VREDescriptionPresenter implements Presenter {
|
||||
|
||||
public interface Display {
|
||||
TextField<String> getVREName();
|
||||
TextField<String> getVREDesigner();
|
||||
DateField getFromDate();
|
||||
DateField getToDate();
|
||||
ComboBox<BaseModel> getVREManager();
|
||||
TextArea getVREDescription();
|
||||
void setData(Map<String,Object> result,VREDescriptionBean bean);
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
private final VREDefinitionModel vreModel;
|
||||
|
||||
private final Display display;
|
||||
private final VREDefinitionServiceAsync rpcService;
|
||||
private LayoutContainer container;
|
||||
|
||||
|
||||
public VREDescriptionPresenter(VREDefinitionServiceAsync rpcService,VREDefinitionModel model, Display display) {
|
||||
this.vreModel = model;
|
||||
this.rpcService = rpcService;
|
||||
this.display = display;
|
||||
}
|
||||
|
||||
public boolean doSave() {
|
||||
|
||||
String description = display.getVREDescription().getValue();
|
||||
String designer = display.getVREDesigner().getValue();
|
||||
String name = display.getVREName().getValue();
|
||||
String manager = null;
|
||||
if(display.getVREManager().getValue()!= null)
|
||||
manager = (String)display.getVREManager().getValue().get("name");
|
||||
|
||||
Date fromDate = display.getFromDate().getValue();
|
||||
Date toDate = display.getToDate().getValue();
|
||||
|
||||
VREDescriptionBean bean = new VREDescriptionBean(name, description,
|
||||
designer, manager, fromDate, toDate);
|
||||
vreModel.setVREDescription(bean);
|
||||
|
||||
return validateForm();
|
||||
}
|
||||
|
||||
public void go(LayoutContainer container) {
|
||||
// TODO Auto-generated method stub
|
||||
this.container = container;
|
||||
|
||||
container.removeAll();
|
||||
getVREInfo();
|
||||
container.add(display.asWidget());
|
||||
|
||||
container.mask("Loading data...", "loading-indicator");
|
||||
container.layout();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void getVREInfo() {
|
||||
|
||||
rpcService.getVRE(new AsyncCallback<Map<String,Object>>() {
|
||||
|
||||
|
||||
public void onFailure(Throwable arg0) {
|
||||
// TODO Auto-generated method stub
|
||||
MessageBox.alert("VRE Definition","We cannot find any VRE-Manager user for this environment." +
|
||||
" There must be at least one.", null);
|
||||
//container.unmask();
|
||||
}
|
||||
|
||||
|
||||
public void onSuccess(Map<String, Object> result) {
|
||||
// TODO Auto-generated method stub
|
||||
VREDescriptionBean bean = vreModel.getVREDescriptionBean();
|
||||
if(bean == null && result.get("vreName") != null) {
|
||||
bean = new VREDescriptionBean((String)result.get("vreName"),(String)result.get("vreDescription"),
|
||||
(String)result.get("vreDesigner"),(String)result.get("vreManager"),
|
||||
(Date)result.get("vreStartTime"),(Date)result.get("vreEndTime"));
|
||||
}
|
||||
display.setData(result,bean);
|
||||
container.unmask();
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private boolean validateForm(){
|
||||
|
||||
VREDescriptionBean bean = vreModel.getVREDescriptionBean();
|
||||
boolean check = true;
|
||||
if(bean.getName() == null || bean.getName().trim().isEmpty() || bean.getName().contains(" "))
|
||||
check = false;
|
||||
if(bean.getDescription() == null || bean.getDescription().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getDesigner() == null || bean.getDesigner().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getManager() == null || bean.getManager().trim().isEmpty())
|
||||
check = false;
|
||||
if(bean.getStartTime() == null)
|
||||
check = false;
|
||||
if(bean.getEndTime() == null)
|
||||
check = false;
|
||||
|
||||
return check;
|
||||
}
|
||||
|
||||
|
||||
public Widget display() {
|
||||
// TODO Auto-generated method stub
|
||||
return display.asWidget();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class VREFinishWizardPresenter implements Presenter {
|
||||
public interface Display {
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
private final Display display;
|
||||
|
||||
public VREFinishWizardPresenter(Display display){
|
||||
this.display = display;
|
||||
}
|
||||
|
||||
public void go(LayoutContainer container){
|
||||
container.removeAll();
|
||||
display.asWidget().setWidth(String.valueOf(container.getOffsetWidth()));
|
||||
display.asWidget().setHeight(String.valueOf(container.getOffsetHeight()));
|
||||
container.add(display.asWidget());
|
||||
container.layout();
|
||||
}
|
||||
|
||||
public boolean doSave() {
|
||||
// TODO Auto-generated method stub
|
||||
return true;
|
||||
}
|
||||
|
||||
public Widget display() {
|
||||
// TODO Auto-generated method stub
|
||||
return display.asWidget();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.VREDefinitionServiceAsync;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.TreeNodeFunctionalityEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREDefinitionModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.event.Events;
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.TreePanelEvent;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class VREFunctionalitiesPresenter implements Presenter{
|
||||
|
||||
public interface Display {
|
||||
TreePanel<ModelData> getTreeFunctionalities();
|
||||
void setData(List<ModelData> categories);
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
private final VREDefinitionServiceAsync rpcService;
|
||||
private final Display display;
|
||||
private final VREDefinitionModel vreModel;
|
||||
private LayoutContainer container;
|
||||
private final HandlerManager eventBus;
|
||||
|
||||
public VREFunctionalitiesPresenter(VREDefinitionServiceAsync rpcService,VREDefinitionModel vreModel,
|
||||
HandlerManager eventBus, Display display) {
|
||||
this.display = display;
|
||||
this.rpcService = rpcService;
|
||||
this.vreModel = vreModel;
|
||||
this.eventBus = eventBus;
|
||||
|
||||
}
|
||||
|
||||
public void bind() {
|
||||
display.getTreeFunctionalities().addListener(Events.OnClick, new Listener<TreePanelEvent<ModelData>>() {
|
||||
|
||||
public void handleEvent(TreePanelEvent<ModelData> be) {
|
||||
if (be.getType() == Events.OnClick) {
|
||||
VREFunctionalityModel selectedModel = (VREFunctionalityModel)be.getItem();
|
||||
eventBus.fireEvent(new TreeNodeFunctionalityEvent(selectedModel));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
public boolean doSave() {
|
||||
|
||||
TreePanel<ModelData> items = display.getTreeFunctionalities();
|
||||
for(ModelData item : items.getStore().getAllItems()) {
|
||||
item.set("isSelected", false);
|
||||
}
|
||||
|
||||
for(ModelData item : items.getCheckedSelection()) {
|
||||
item.set("isSelected",true);
|
||||
}
|
||||
|
||||
vreModel.setVREFunctionalities(items.getStore().getRootItems());
|
||||
return validateVREFunctionalitiesSelected();
|
||||
}
|
||||
|
||||
private boolean validateVREFunctionalitiesSelected() {
|
||||
|
||||
List<ModelData> categories = vreModel.getVREFunctionalities();
|
||||
boolean check = false;
|
||||
for(ModelData category : categories) {
|
||||
for(ModelData func : ((VREFunctionalityModel)category).getChildren())
|
||||
if (((VREFunctionalityModel)func).isSelected()){
|
||||
check = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!check)
|
||||
MessageBox.alert("Alert", "Please, select at least one Functionality", null);
|
||||
|
||||
return check;
|
||||
}
|
||||
|
||||
|
||||
public void go(LayoutContainer container) {
|
||||
this.container = container;
|
||||
|
||||
container.removeAll();
|
||||
container.add(display.asWidget());
|
||||
container.layout();
|
||||
|
||||
if(vreModel.getVREFunctionalities() == null) {
|
||||
fetchFunctionalities();
|
||||
container.mask("Loading data...","loading-indicator");
|
||||
} else {
|
||||
display.setData(vreModel.getVREFunctionalities());
|
||||
bind();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void fetchFunctionalities() {
|
||||
rpcService.getFunctionality(false, new AsyncCallback<VREFunctionalityModel>() {
|
||||
|
||||
|
||||
public void onSuccess(VREFunctionalityModel result) {
|
||||
container.unmask();
|
||||
if (result == null) {
|
||||
MessageBox.info("Service Error", "There is no instance of the underlying service running, please try again in a short while", null);
|
||||
}
|
||||
else{
|
||||
display.setData(result.getChildren());
|
||||
bind();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void onFailure(Throwable caught) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public Widget display() {
|
||||
// TODO Auto-generated method stub
|
||||
return display.asWidget();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class VREInfoFunctionalitiesPresenter {
|
||||
|
||||
public interface Display {
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
private final Display display;
|
||||
|
||||
public VREInfoFunctionalitiesPresenter(Display display){
|
||||
this.display = display;
|
||||
}
|
||||
|
||||
public void go(LayoutContainer container){
|
||||
container.removeAll();
|
||||
container.add(display.asWidget());
|
||||
container.layout();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class VREStartWizardPresenter implements Presenter {
|
||||
public interface Display {
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
private final Display display;
|
||||
|
||||
public VREStartWizardPresenter(Display display){
|
||||
this.display = display;
|
||||
}
|
||||
|
||||
public void go(LayoutContainer container){
|
||||
container.removeAll();
|
||||
container.add(display.asWidget());
|
||||
container.layout();
|
||||
}
|
||||
|
||||
|
||||
public boolean doSave() {
|
||||
// TODO Auto-generated method stub
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public Widget display() {
|
||||
// TODO Auto-generated method stub
|
||||
return display.asWidget();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,97 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.BackButtonEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.NextButtonEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.WizardStepType;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Label;
|
||||
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
|
||||
|
||||
|
||||
|
||||
public class WizardActionsPresenter {
|
||||
|
||||
public interface Display {
|
||||
Button getNextButton();
|
||||
Button getBackButton();
|
||||
Label getLabel();
|
||||
HorizontalPanel getContainer();
|
||||
void setVisible(boolean visible);
|
||||
Composite asComponent();
|
||||
}
|
||||
|
||||
private final HandlerManager eventBus;
|
||||
public final Display display;
|
||||
|
||||
public WizardActionsPresenter(HandlerManager eventBus, Display view) {
|
||||
|
||||
this.eventBus = eventBus;
|
||||
this.display = view;
|
||||
bind();
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void bind() {
|
||||
|
||||
display.getNextButton().addClickHandler(new ClickHandler() {
|
||||
|
||||
|
||||
public void onClick(ClickEvent arg0) {
|
||||
eventBus.fireEvent(new NextButtonEvent());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
display.getBackButton().addClickHandler(new ClickHandler() {
|
||||
|
||||
|
||||
public void onClick(ClickEvent arg0) {
|
||||
eventBus.fireEvent(new BackButtonEvent());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void go(final ToolBar container) {
|
||||
|
||||
container.removeAll();
|
||||
display.asComponent().setSize(container.getAbsoluteLeft(), 44);
|
||||
container.add(display.asComponent());
|
||||
container.layout();
|
||||
}
|
||||
|
||||
public void setStepWizard(WizardStepType type) {
|
||||
|
||||
display.getBackButton().setVisible(true);
|
||||
// display.getNextButton().changeStyle("forward-icon");
|
||||
// display.getNextButton().setSize(48, 19);
|
||||
|
||||
// display.getBackButton().setEnabled(true);
|
||||
String string = "" + type.ordinal() + " of " + (WizardStepType.values().length - 1);
|
||||
display.getLabel().setText(string);
|
||||
switch(type){
|
||||
case VREDefinitionStart:
|
||||
break;
|
||||
case VREDescription:
|
||||
display.getBackButton().setVisible(false);
|
||||
break;
|
||||
case VREDefinitionEnd:
|
||||
display.getNextButton().setText("Upload");
|
||||
|
||||
break;
|
||||
default:
|
||||
display.getBackButton().setEnabled(true);
|
||||
display.getNextButton().setEnabled(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.presenter;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.TreeNodeWizardMenuEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.WizardStepModel;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.event.Events;
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.TreePanelEvent;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
public class WizardMenuViewPresenter {
|
||||
|
||||
public interface Display {
|
||||
TreePanel<ModelData> getTreeMenu();
|
||||
Widget asWidget();
|
||||
}
|
||||
|
||||
private final Display display;
|
||||
private final HandlerManager eventBus;
|
||||
|
||||
public WizardMenuViewPresenter(HandlerManager eventBus, Display display){
|
||||
this.display = display;
|
||||
this.eventBus = eventBus;
|
||||
bind();
|
||||
}
|
||||
|
||||
public void bind() {
|
||||
display.getTreeMenu().addListener(Events.OnClick, new Listener<TreePanelEvent<ModelData>>() {
|
||||
|
||||
public void handleEvent(TreePanelEvent<ModelData> be) {
|
||||
if (be.getType() == Events.OnClick) {
|
||||
WizardStepModel selectedModel = (WizardStepModel)be.getItem();
|
||||
eventBus.fireEvent(new TreeNodeWizardMenuEvent(selectedModel));
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void go(LayoutContainer container) {
|
||||
container.removeAll();
|
||||
container.add(display.asWidget());
|
||||
container.layout();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
public enum NodeType {
|
||||
/**
|
||||
* INFO
|
||||
*/
|
||||
INFO,
|
||||
/**
|
||||
* CONTENT
|
||||
*/
|
||||
CONTENT,
|
||||
/**
|
||||
* COLLECTION
|
||||
*/
|
||||
COLLECTION,
|
||||
/**
|
||||
* METADATA
|
||||
*/
|
||||
METADATA,
|
||||
/**
|
||||
* FUNCTIONALITY
|
||||
*/
|
||||
FUNCTIONALITY,
|
||||
/**
|
||||
* REPORT
|
||||
*/
|
||||
REPORT,
|
||||
/**
|
||||
* ARCHITECTURE
|
||||
*/
|
||||
ARCHITECTURE;
|
||||
|
||||
}
|
|
@ -0,0 +1,158 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.AppController;
|
||||
import org.gcube.portlets.admin.vredefinition.client.event.ExternalResourceSelectionEvent;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.core.XTemplate;
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
||||
import com.extjs.gxt.ui.client.event.GridEvent;
|
||||
import com.extjs.gxt.ui.client.event.SelectionListener;
|
||||
import com.extjs.gxt.ui.client.store.GroupingStore;
|
||||
import com.extjs.gxt.ui.client.store.ListStore;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
||||
import com.extjs.gxt.ui.client.widget.button.Button;
|
||||
import com.extjs.gxt.ui.client.widget.form.CheckBox;
|
||||
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
||||
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig;
|
||||
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.GroupingView;
|
||||
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
* @version 0.2 Sep 2012
|
||||
*
|
||||
*/
|
||||
public class ResourcesGrid {
|
||||
|
||||
private List<ExternalResourceModel> myResourcesList;
|
||||
private VREFunctionalityModel myFunc;
|
||||
public ResourcesGrid(VREFunctionalityModel func, List<ExternalResourceModel> list) {
|
||||
myFunc = func;
|
||||
myResourcesList = list;
|
||||
}
|
||||
public ContentPanel getGrid() {
|
||||
|
||||
ArrayList<ColumnConfig> configs = new ArrayList<ColumnConfig>();
|
||||
|
||||
XTemplate tpl = XTemplate.create("<div class=\"resourceText\"><b>Resource name:</b> {name}</div><div class=\"resourceText\"><b>Description:</b> {description}<div>");
|
||||
|
||||
RowExpander expander = new RowExpander();
|
||||
expander.setTemplate(tpl);
|
||||
|
||||
configs.add(expander);
|
||||
|
||||
ColumnConfig column = new ColumnConfig();
|
||||
|
||||
column.setId("id");
|
||||
column.setHeader("ID");
|
||||
column.setWidth(50);
|
||||
column.setHidden(true);
|
||||
configs.add(column);
|
||||
|
||||
column = new ColumnConfig();
|
||||
column.setId("name");
|
||||
column.setHeader("Name");
|
||||
column.setWidth(100);
|
||||
configs.add(column);
|
||||
|
||||
column = new ColumnConfig();
|
||||
column.setId("description");
|
||||
column.setHeader("Description");
|
||||
column.setWidth(200);
|
||||
configs.add(column);
|
||||
|
||||
column = new ColumnConfig();
|
||||
column.setId("category");
|
||||
column.setHeader("Type");
|
||||
column.setHidden(true);
|
||||
column.setAlignment(HorizontalAlignment.CENTER);
|
||||
column.setWidth(30);
|
||||
configs.add(column);
|
||||
|
||||
CheckColumnConfig checkColumn = new CheckColumnConfig("isSelected", "isSelected", 35) {
|
||||
@Override
|
||||
protected void onMouseDown(final GridEvent<ModelData> ge) {
|
||||
super.onMouseDown(ge);
|
||||
ExternalResourceModel bean = (ExternalResourceModel) ge.getModel();
|
||||
//TODO:
|
||||
}
|
||||
};
|
||||
checkColumn.setHeader("Select");
|
||||
checkColumn.setAlignment(HorizontalAlignment.CENTER);
|
||||
|
||||
CheckBox checkbox = new CheckBox();
|
||||
|
||||
CellEditor checkBoxEditor = new CellEditor(checkbox);
|
||||
|
||||
checkColumn.setEditor(checkBoxEditor);
|
||||
configs.add(checkColumn);
|
||||
|
||||
final ColumnModel cm = new ColumnModel(configs);
|
||||
|
||||
/**
|
||||
* load the grid data
|
||||
*/
|
||||
final GroupingStore<ExternalResourceModel> store = new GroupingStore<ExternalResourceModel>();
|
||||
store.groupBy("category");
|
||||
|
||||
//store.sort("isSelectable", SortDir.DESC);
|
||||
store.add(myResourcesList);
|
||||
|
||||
|
||||
Grid<ExternalResourceModel> grid = new Grid<ExternalResourceModel>(store, cm);
|
||||
|
||||
GroupingView view = new GroupingView();
|
||||
view.setShowGroupedColumn(false);
|
||||
view.setForceFit(true);
|
||||
grid.setView(view);
|
||||
grid.addPlugin(expander);
|
||||
grid.addPlugin(checkColumn);
|
||||
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.setHeight(400);
|
||||
|
||||
gridPanel.addButton(new Button("Reset", new SelectionListener<ButtonEvent>() {
|
||||
@Override
|
||||
public void componentSelected(ButtonEvent ce) {
|
||||
store.rejectChanges();
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
|
||||
gridPanel.addButton(new Button("Commit changes", new SelectionListener<ButtonEvent>() {
|
||||
@Override
|
||||
public void componentSelected(ButtonEvent ce) {
|
||||
List<ExternalResourceModel> resources = store.getModels();
|
||||
store.commitChanges();
|
||||
AppController.getAppController().getBus().fireEvent(new ExternalResourceSelectionEvent(myFunc, resources));
|
||||
|
||||
}
|
||||
}));
|
||||
|
||||
return gridPanel;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREDefinitionPresenter;
|
||||
import org.gcube.portlets.user.gcubewidgets.client.GCubePanel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.LayoutRegion;
|
||||
import com.extjs.gxt.ui.client.Style.Orientation;
|
||||
import com.extjs.gxt.ui.client.util.Margins;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.LayoutData;
|
||||
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
|
||||
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
||||
import com.google.gwt.user.client.Window;
|
||||
|
||||
|
||||
|
||||
|
||||
public class VREDefinitionView extends Composite implements VREDefinitionPresenter.Display {
|
||||
|
||||
|
||||
private LayoutContainer upCenterPanel;
|
||||
private ContentPanel westPanel;
|
||||
private ToolBar bottomCenterPanel;
|
||||
private ContentPanel eastPanel;
|
||||
private LayoutContainer upContainer;
|
||||
|
||||
|
||||
public VREDefinitionView() {
|
||||
|
||||
LayoutContainer container = new LayoutContainer();
|
||||
container.setStyleAttribute("padding", "2px");
|
||||
|
||||
|
||||
upContainer = new LayoutContainer();
|
||||
upContainer.setLayout(new BorderLayout());
|
||||
|
||||
|
||||
westPanel = new ContentPanel();
|
||||
ContentPanel centerPanel = new ContentPanel();
|
||||
centerPanel.setFrame(true);
|
||||
centerPanel.setBodyStyle("backgroundColor: white;");
|
||||
eastPanel = new ContentPanel();
|
||||
eastPanel.setVisible(false);
|
||||
eastPanel.setCollapsible(false);
|
||||
|
||||
|
||||
|
||||
BorderLayoutData westData = new BorderLayoutData(LayoutRegion.WEST, 150);
|
||||
westData.setSplit(false);
|
||||
westData.setMargins(new Margins(0, 5, 0, 0));
|
||||
westData.setCollapsible(false);
|
||||
|
||||
BorderLayoutData centerData = new BorderLayoutData(LayoutRegion.CENTER, 500);
|
||||
centerData.setSplit(true);
|
||||
centerData.setCollapsible(false);
|
||||
centerData.setMargins(new Margins(0,0,0,0));
|
||||
|
||||
BorderLayoutData eastData = new BorderLayoutData(LayoutRegion.EAST, 500);
|
||||
eastData.setSplit(true);
|
||||
eastData.setCollapsible(false);
|
||||
eastData.setMargins(new Margins(0,0,0,5));
|
||||
|
||||
upContainer.add(westPanel, westData);
|
||||
|
||||
upCenterPanel = new LayoutContainer();
|
||||
upCenterPanel.setSize("100%", "100%");
|
||||
centerPanel.add(upCenterPanel);
|
||||
upContainer.add(centerPanel, centerData);
|
||||
upContainer.add(eastPanel, eastData);
|
||||
|
||||
container.add(upContainer);
|
||||
|
||||
|
||||
bottomCenterPanel = new ToolBar();
|
||||
bottomCenterPanel.setSize("100%", "100%");
|
||||
//toolBar.add(bottomCenterPanel);
|
||||
|
||||
container.add(bottomCenterPanel);
|
||||
initComponent(container);
|
||||
|
||||
setHeight(Window.getClientHeight());
|
||||
setWidth(Window.getClientWidth());
|
||||
|
||||
eastPanel.setCollapsible(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ToolBar getBottomCenterPanel() {
|
||||
// TODO Auto-generated method stub
|
||||
return bottomCenterPanel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ContentPanel getEastPanel() {
|
||||
return eastPanel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public LayoutContainer getUpCenterPanel() {
|
||||
// TODO Auto-generated method stub
|
||||
return upCenterPanel;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ContentPanel getwestPanel() {
|
||||
// TODO Auto-generated method stub
|
||||
return westPanel;
|
||||
}
|
||||
|
||||
public LayoutContainer getUpContainer() {
|
||||
return upContainer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,224 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREDescriptionPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
||||
import com.extjs.gxt.ui.client.data.BaseModel;
|
||||
import com.extjs.gxt.ui.client.store.ListStore;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Label;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
||||
import com.extjs.gxt.ui.client.widget.form.DateField;
|
||||
import com.extjs.gxt.ui.client.widget.form.Field;
|
||||
import com.extjs.gxt.ui.client.widget.form.FieldSet;
|
||||
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
||||
import com.extjs.gxt.ui.client.widget.form.TextArea;
|
||||
import com.extjs.gxt.ui.client.widget.form.TextField;
|
||||
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
||||
import com.extjs.gxt.ui.client.widget.form.Validator;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FillLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FormData;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.TableData;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
|
||||
public class VREDescriptionView extends Composite implements VREDescriptionPresenter.Display{
|
||||
|
||||
|
||||
private TextField<String> vrename;
|
||||
private TextField<String> vredesigner;
|
||||
private DateField fromDate;
|
||||
private DateField toDate;
|
||||
private ComboBox<BaseModel> vremanager;
|
||||
private TextArea vredescription;
|
||||
|
||||
|
||||
public VREDescriptionView() {
|
||||
|
||||
FormData formData = new FormData("-20");
|
||||
|
||||
VerticalPanel panel = new VerticalPanel();
|
||||
panel.setSize("100%", "100%");
|
||||
|
||||
panel.setStyleAttribute("padding", "10px");
|
||||
panel.setTableWidth("100%");
|
||||
|
||||
|
||||
FieldSet fieldSet = new FieldSet();
|
||||
fieldSet.setWidth("95%");
|
||||
fieldSet.setHeading("VRE Information");
|
||||
|
||||
FormLayout layout = new FormLayout();
|
||||
layout.setLabelWidth(100);
|
||||
fieldSet.setLayout(layout);
|
||||
|
||||
vrename = new TextField<String>();
|
||||
vrename.setFieldLabel("Name");
|
||||
vrename.setAllowBlank(false);
|
||||
vrename.setValidator(new Validator() {
|
||||
public String validate (Field ticketField, String value){
|
||||
if (vrename.getRawValue().contains(" "))
|
||||
return "No blanks allowed, a VRE name must be a single word";
|
||||
else
|
||||
return null;
|
||||
}
|
||||
});
|
||||
fieldSet.add(vrename,formData);
|
||||
|
||||
vredesigner = new TextField<String>();
|
||||
vredesigner.setFieldLabel("Designer");
|
||||
|
||||
vredesigner.setAllowBlank(false);
|
||||
fieldSet.add(vredesigner,formData);
|
||||
|
||||
|
||||
ListStore<BaseModel> store = new ListStore<BaseModel>();
|
||||
|
||||
BaseModel managerModel = new BaseModel();
|
||||
managerModel.set("name", "Manager");
|
||||
store.add(managerModel);
|
||||
|
||||
vremanager = new ComboBox<BaseModel>();
|
||||
vremanager.setFieldLabel("VRE Manager");
|
||||
vremanager.setDisplayField("name");
|
||||
vremanager.setTriggerAction(TriggerAction.ALL);
|
||||
vremanager.setStore(store);
|
||||
vremanager.setAllowBlank(false);
|
||||
vremanager.setEditable(false);
|
||||
fieldSet.add(vremanager,formData);
|
||||
|
||||
vredescription = new TextArea();
|
||||
vredescription.setFieldLabel("Description");
|
||||
vredescription.setValue("Write the Virtual Research Environment description here");
|
||||
vredescription.setAllowBlank(false);
|
||||
fieldSet.add(vredescription,formData);
|
||||
|
||||
|
||||
panel.add(fieldSet);
|
||||
|
||||
|
||||
fieldSet = new FieldSet();
|
||||
fieldSet.setWidth("95%");
|
||||
fieldSet.setHeading("Life time");
|
||||
|
||||
layout = new FormLayout();
|
||||
layout.setLabelWidth(100);
|
||||
fieldSet.setLayout(layout);
|
||||
|
||||
DateTimeFormat fmt = DateTimeFormat.getFormat("MMMM dd, yyyy");
|
||||
|
||||
fromDate = new DateField();
|
||||
fromDate.setName("date");
|
||||
fromDate.setFieldLabel("From");
|
||||
fromDate.getPropertyEditor().setFormat(fmt);
|
||||
fromDate.setValue(new Date());
|
||||
|
||||
fromDate.setAllowBlank(false);
|
||||
fromDate.setAutoValidate(true);
|
||||
fieldSet.add(fromDate,formData);
|
||||
|
||||
toDate = new DateField();
|
||||
toDate.setName("date");
|
||||
toDate.setFieldLabel("To");
|
||||
|
||||
Date date = new Date();
|
||||
date.setYear(date.getYear() + 1);
|
||||
toDate.setValue(date);
|
||||
toDate.getPropertyEditor().setFormat(fmt);
|
||||
|
||||
toDate.setAllowBlank(false);
|
||||
toDate.setAutoValidate(true);
|
||||
fieldSet.add(toDate,formData);
|
||||
|
||||
|
||||
panel.add(fieldSet);
|
||||
|
||||
initComponent(panel);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void setData(Map<String,Object> result, VREDescriptionBean bean) {
|
||||
|
||||
ListStore<BaseModel> store = new ListStore<BaseModel>();
|
||||
vremanager.setStore(store);
|
||||
|
||||
if (result != null && result.get("Manager")!= null) {
|
||||
for(String value : (List<String>)result.get("Manager")){
|
||||
BaseModel managerModel = new BaseModel();
|
||||
managerModel.set("name", value);
|
||||
store.add(managerModel);
|
||||
vremanager.setValue(managerModel);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(result != null && result.get("Designer") != null)
|
||||
vredesigner.setValue((String)result.get("Designer"));
|
||||
|
||||
if(bean == null)
|
||||
return;
|
||||
|
||||
ListStore<BaseModel> list = vremanager.getStore();
|
||||
for(int i = 0; i < list.getCount(); i++) {
|
||||
BaseModel manager = list.getAt(i);
|
||||
if(manager.get("name").equals(bean.getManager())) {
|
||||
vremanager.setValue(manager);
|
||||
}
|
||||
}
|
||||
|
||||
vrename.setValue(bean.getName());
|
||||
vredesigner.setValue(bean.getDesigner());
|
||||
vredescription.setValue(bean.getDescription());
|
||||
fromDate.setValue(bean.getStartTime());
|
||||
toDate.setValue(bean.getEndTime());
|
||||
}
|
||||
|
||||
public TextField<String> getVREName() {
|
||||
return vrename;
|
||||
}
|
||||
|
||||
public TextField<String> getVREDesigner() {
|
||||
return vredesigner;
|
||||
}
|
||||
|
||||
public ComboBox<BaseModel> getVREManager() {
|
||||
return vremanager;
|
||||
}
|
||||
|
||||
public TextArea getVREDescription() {
|
||||
return vredescription;
|
||||
}
|
||||
|
||||
public Widget asWidget() {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public DateField getFromDate() {
|
||||
|
||||
return fromDate;
|
||||
}
|
||||
|
||||
|
||||
public DateField getToDate() {
|
||||
|
||||
return toDate;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.AppController;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREFinishWizardPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VRECollectionBean;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.Scroll;
|
||||
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Viewport;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.MarginData;
|
||||
import com.extjs.gxt.ui.client.widget.layout.TableData;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
|
||||
public class VREFinishWizardView extends Composite implements VREFinishWizardPresenter.Display{
|
||||
|
||||
public VREFinishWizardView(VREDescriptionBean vre, List<ModelData> categories) {
|
||||
|
||||
|
||||
|
||||
|
||||
VerticalPanel container = new VerticalPanel();
|
||||
container.setScrollMode(Scroll.AUTO);
|
||||
|
||||
|
||||
container.setStyleAttribute("padding", "10px");
|
||||
container.setTableWidth("100%");
|
||||
|
||||
TableData tableData = new TableData();
|
||||
tableData.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||
|
||||
//STYLE=\"font-size:18px;\"
|
||||
String vreDescription = "<div STYLE=\"font-size:18px;\" align=\"center\" ><h1> Summary </h1></div>";
|
||||
vreDescription+="<div><b>Name: </b>" + vre.getName() +"</div>";
|
||||
vreDescription+="<div><b>VRE Designer: </b>" + vre.getDesigner() +"</div>";
|
||||
vreDescription+="<div><b>VRE Manager: </b>" + vre.getManager() +"</div>";
|
||||
DateTimeFormat fmt = DateTimeFormat.getFormat("MMMM dd, yyyy");
|
||||
vreDescription+="<div ><b>From: </b>"
|
||||
+ fmt.format(vre.getStartTime())
|
||||
+ " <b> To: </b>"
|
||||
+ fmt.format(vre.getEndTime())
|
||||
+ "</div>";
|
||||
|
||||
vreDescription+= "<br />";
|
||||
vreDescription+="<div><b>Description: </b>" + vre.getDescription() +"</div>";
|
||||
vreDescription += "<br />";
|
||||
|
||||
container.add(new HTML(vreDescription, true ));
|
||||
|
||||
List<ModelData> functionalitiesSelected = new ArrayList<ModelData>();
|
||||
for (ModelData category : categories) {
|
||||
for(ModelData func : ((VREFunctionalityModel)category).getChildren()) {
|
||||
if(((VREFunctionalityModel)func).isSelected())
|
||||
functionalitiesSelected.add(func);
|
||||
}
|
||||
}
|
||||
|
||||
int sizeFunctionalities = functionalitiesSelected.size();
|
||||
|
||||
|
||||
|
||||
String table = "<table width=\"100%\" align=\"center\" >";
|
||||
table += "<tr>";
|
||||
|
||||
if (sizeFunctionalities > 0) {
|
||||
table += "<td width=\"50%\" >";
|
||||
table += "<div STYLE=\"font-size:14px;\"><h1><u>Functionalities</u></h1></div>";
|
||||
table += "</td>";
|
||||
table += "</tr>";
|
||||
}
|
||||
|
||||
table += "<tr>";
|
||||
table += "<td width=\"50%\" >";
|
||||
table += "</td>";
|
||||
table += "<td width=\"50%\" >";
|
||||
table += "</td>";
|
||||
table += "</tr>";
|
||||
|
||||
|
||||
int maxSize = Math.max(0, sizeFunctionalities);
|
||||
|
||||
for(int i = 0; i < maxSize; i++) {
|
||||
|
||||
table += "<tr>";
|
||||
if (sizeFunctionalities > 0) {
|
||||
table += "<td width=\"50%\">";
|
||||
ModelData functionality = null;
|
||||
if(i < sizeFunctionalities) {
|
||||
functionality = functionalitiesSelected.get(i);
|
||||
table +=" - <span style=\"font-weight: bold; color: #333;\">" + functionality.get("name")+"</span>";
|
||||
List<ExternalResourceModel> extResources = AppController.getAppController().getExtResourcesFromApp(functionality.get("id").toString());
|
||||
if (extResources != null) {
|
||||
table += "<br />";
|
||||
for (ExternalResourceModel ext : extResources) {
|
||||
if (ext.isSelected()) {
|
||||
table += "<span class=\"extres\" >" + ext.getName() + "</span>";
|
||||
table += "<br />";
|
||||
}
|
||||
}
|
||||
table += "<br /><br />";
|
||||
}
|
||||
}
|
||||
table += "</td>";
|
||||
}
|
||||
|
||||
table += "</tr>";
|
||||
}
|
||||
table += "</table>";
|
||||
|
||||
container.add(new HTML(table, true));
|
||||
|
||||
initComponent(container);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Widget asWidget() {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREFunctionalitiesPresenter;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.Scroll;
|
||||
import com.extjs.gxt.ui.client.Style.SelectionMode;
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.data.ModelIconProvider;
|
||||
import com.extjs.gxt.ui.client.store.TreeStore;
|
||||
import com.extjs.gxt.ui.client.util.IconHelper;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel.CheckCascade;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanelSelectionModel;
|
||||
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
*
|
||||
*/
|
||||
public class VREFunctionalitiesView extends Composite implements VREFunctionalitiesPresenter.Display{
|
||||
|
||||
private TreePanel<ModelData> tree;
|
||||
private LayoutContainer container;
|
||||
|
||||
public VREFunctionalitiesView() {
|
||||
|
||||
|
||||
container = new LayoutContainer();
|
||||
container.setScrollMode(Scroll.AUTO);
|
||||
container.setSize("100%","100%");
|
||||
|
||||
initComponent(container);
|
||||
}
|
||||
|
||||
|
||||
public void setData(List<ModelData> categories) {
|
||||
TreeStore<ModelData> store = new TreeStore<ModelData>();
|
||||
store.add(categories, true);
|
||||
tree = new TreePanel<ModelData>(store);
|
||||
|
||||
tree.setCheckable(true);
|
||||
tree.setWidth(300);
|
||||
tree.setDisplayProperty("name");
|
||||
|
||||
// Handles the selection
|
||||
TreePanelSelectionModel<ModelData> sm = new TreePanelSelectionModel<ModelData>();
|
||||
tree.setSelectionModel(sm);
|
||||
|
||||
tree.getSelectionModel().setSelectionMode(SelectionMode.MULTI);
|
||||
tree.setCheckStyle(CheckCascade.CHILDREN);
|
||||
|
||||
// The icon decorator
|
||||
tree.setIconProvider(
|
||||
new ModelIconProvider<ModelData>() {
|
||||
public AbstractImagePrototype getIcon(final ModelData model) {
|
||||
if (model.get("node") != null && model.get("icon") != null) {
|
||||
return IconHelper.createStyle((String) model.get("icon"));
|
||||
}
|
||||
return IconHelper.createStyle("defaultleaf-icon");
|
||||
}
|
||||
});
|
||||
|
||||
tree.expandAll();
|
||||
tree.setAutoExpand(true);
|
||||
|
||||
|
||||
|
||||
container.removeAll();
|
||||
container.add(tree);
|
||||
container.layout();
|
||||
|
||||
// Set node checked after layout
|
||||
for(ModelData functionality : tree.getStore().getAllItems()) {
|
||||
tree.setChecked(functionality,((VREFunctionalityModel)functionality).isSelected());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public TreePanel<ModelData> getTreeFunctionalities() {
|
||||
// TODO Auto-generated method stub
|
||||
return tree;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.AppController;
|
||||
import org.gcube.portlets.admin.vredefinition.client.VREDefinitionServiceAsync;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREInfoFunctionalitiesPresenter;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Massimiliano Assante ISTI-CNR
|
||||
* @version 0.2 Sep 2012
|
||||
*
|
||||
*/
|
||||
public class VREInfoFunctionalitiesView extends ContentPanel implements VREInfoFunctionalitiesPresenter.Display{
|
||||
|
||||
private ContentPanel gridPanel;
|
||||
private String toAdd = "";
|
||||
|
||||
private HTML info = new HTML();
|
||||
|
||||
public VREInfoFunctionalitiesView() {
|
||||
setHeaderVisible(false);
|
||||
setBodyBorder(true);
|
||||
String toAdd = "</br><h3> Select a functionality to show info </h3>";
|
||||
add(new HTML(toAdd, true ));
|
||||
setStyleAttribute("margin", "10px");
|
||||
}
|
||||
|
||||
public VREInfoFunctionalitiesView(final VREFunctionalityModel functionality, VREDefinitionServiceAsync rpcService) {
|
||||
mask("Loading available resources ....");
|
||||
setHeaderVisible(false);
|
||||
setBodyBorder(false);
|
||||
toAdd = "<div class=\"theTitle\">" + functionality.getName() + "</div>";
|
||||
toAdd += "<div class=\"functionalityText\">" + functionality.getDescription()+"</div>";
|
||||
info.setHTML(toAdd);
|
||||
add(info);
|
||||
|
||||
setStyleAttribute("margin", "10px");
|
||||
|
||||
//get that from the server
|
||||
rpcService.getResourceCategoryByFunctionality(functionality.getId(), new AsyncCallback<ArrayList<ExternalResourceModel>>() {
|
||||
|
||||
public void onSuccess(ArrayList<ExternalResourceModel> cats) {
|
||||
if (cats.size() == 0) {
|
||||
unmask();
|
||||
toAdd += "<div class=\"theResources\">There are no external Resources to select for this functionality</div>";
|
||||
info.setHTML(toAdd);
|
||||
} else {
|
||||
//TODO: REMOVE THIS BUT IT DOESNT RENDER OK OTHERWISE, Have no time to investigate it
|
||||
//if i loaded them yet
|
||||
toAdd += "<div class=\"theResources\">Available Resources for " + functionality.getName() + "</div>";
|
||||
info.setHTML(toAdd);
|
||||
if (AppController.getAppController().getExtResourcesFromApp(functionality.getId()) != null) {
|
||||
List<ExternalResourceModel> categs = AppController.getAppController().getExtResourcesFromApp(functionality.getId());
|
||||
addGridPanel(functionality, categs);
|
||||
}
|
||||
else {
|
||||
addGridPanel(functionality, cats);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onFailure(Throwable arg0) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void addGridPanel(VREFunctionalityModel func, List<ExternalResourceModel> cats) {
|
||||
ResourcesGrid grid = new ResourcesGrid(func, cats);
|
||||
gridPanel = grid.getGrid();
|
||||
gridPanel.setHeight(260);
|
||||
add(gridPanel);
|
||||
gridPanel.layout(true);
|
||||
layout(true);
|
||||
setLayout(new FitLayout());
|
||||
unmask();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style;
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.LayoutContainer;
|
||||
import com.extjs.gxt.ui.client.widget.VerticalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
|
||||
import com.extjs.gxt.ui.client.widget.layout.TableData;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
|
||||
|
||||
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.VREStartWizardPresenter;
|
||||
|
||||
public class VREStartWizardView extends Composite implements VREStartWizardPresenter.Display {
|
||||
|
||||
public VREStartWizardView() {
|
||||
|
||||
VerticalPanel container = new VerticalPanel();
|
||||
container.setSize("100%", "100%");
|
||||
container.setTableHeight("50%");
|
||||
container.setTableWidth("100%");
|
||||
|
||||
TableData tableData = new TableData();
|
||||
tableData.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||
|
||||
LayoutContainer cp = new LayoutContainer();
|
||||
cp.setLayout(new FitLayout());
|
||||
cp.setStyleAttribute("margin", "10px");
|
||||
|
||||
String toAdd = "<div align=\"center\"><h3> This wizard will guide you on the VRE Creation </h3></div>";
|
||||
toAdd += "<br />";
|
||||
toAdd += "<div align=\"center\">Click 'Next' to continue ...</div>";
|
||||
cp.add(new HTML(toAdd, true ));
|
||||
|
||||
container.add(cp,tableData);
|
||||
initComponent(container);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.WizardActionsPresenter;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
|
||||
import com.extjs.gxt.ui.client.Style.VerticalAlignment;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.HorizontalPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Label;
|
||||
import com.extjs.gxt.ui.client.widget.button.IconButton;
|
||||
import com.extjs.gxt.ui.client.widget.layout.TableData;
|
||||
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
|
||||
|
||||
public class WizardActionsView extends Composite implements WizardActionsPresenter.Display{
|
||||
|
||||
private Button nextButton;
|
||||
private Button backButton;
|
||||
private HorizontalPanel panel;
|
||||
private Label label;
|
||||
|
||||
public WizardActionsView(ToolBar container) {
|
||||
|
||||
panel = new HorizontalPanel();
|
||||
panel.setWidth("100%");
|
||||
panel.setTableWidth(""+container.getOffsetWidth()+"px");
|
||||
panel.setTableHeight("30px");
|
||||
|
||||
TableData backData = new TableData("45%","100%");
|
||||
backData.setHorizontalAlign(HorizontalAlignment.RIGHT);
|
||||
backData.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||
|
||||
TableData nextData = new TableData("45%","100%");
|
||||
nextData.setHorizontalAlign(HorizontalAlignment.LEFT);
|
||||
nextData.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||
|
||||
TableData labelData = new TableData("10%","100%");
|
||||
labelData.setHorizontalAlign(HorizontalAlignment.CENTER);
|
||||
labelData.setVerticalAlign(VerticalAlignment.MIDDLE);
|
||||
|
||||
|
||||
backButton = new Button("Back");
|
||||
backButton.setSize("100px", "25px");
|
||||
|
||||
label = new Label("1 of 3");
|
||||
label.setStyleName("label-wizard");
|
||||
label.getElement().getStyle().setFontSize(30, Unit.PX);
|
||||
|
||||
nextButton = new Button("Next");
|
||||
nextButton.setSize("100px", "25px");
|
||||
|
||||
panel.add(backButton,backData);
|
||||
panel.add(label, labelData);
|
||||
panel.add(nextButton,nextData);
|
||||
|
||||
|
||||
|
||||
initComponent(panel);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Composite asComponent() {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Button getNextButton() {
|
||||
return nextButton;
|
||||
}
|
||||
|
||||
|
||||
public Button getBackButton() {
|
||||
return backButton;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Label getLabel() {
|
||||
// TODO Auto-generated method stub
|
||||
return label;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public HorizontalPanel getContainer() {
|
||||
// TODO Auto-generated method stub
|
||||
return panel;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package org.gcube.portlets.admin.vredefinition.client.view;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.WizardStepModel;
|
||||
import org.gcube.portlets.admin.vredefinition.client.presenter.WizardMenuViewPresenter;
|
||||
|
||||
import com.extjs.gxt.ui.client.Style.SelectionMode;
|
||||
import com.extjs.gxt.ui.client.data.BaseTreeModel;
|
||||
import com.extjs.gxt.ui.client.data.ModelData;
|
||||
import com.extjs.gxt.ui.client.data.ModelIconProvider;
|
||||
import com.extjs.gxt.ui.client.event.Events;
|
||||
import com.extjs.gxt.ui.client.event.Listener;
|
||||
import com.extjs.gxt.ui.client.event.TreePanelEvent;
|
||||
import com.extjs.gxt.ui.client.store.TreeStore;
|
||||
import com.extjs.gxt.ui.client.util.IconHelper;
|
||||
import com.extjs.gxt.ui.client.widget.Composite;
|
||||
import com.extjs.gxt.ui.client.widget.ContentPanel;
|
||||
import com.extjs.gxt.ui.client.widget.Layout;
|
||||
import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;
|
||||
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||
|
||||
public class WizardMenuView extends Composite implements WizardMenuViewPresenter.Display{
|
||||
|
||||
private TreePanel<ModelData> tree;
|
||||
private VREDefinitionView parentView;
|
||||
|
||||
|
||||
public WizardMenuView(WizardStepModel treeModel) {
|
||||
|
||||
TreeStore<ModelData> store = new TreeStore<ModelData>();
|
||||
// The root node will not be shown
|
||||
store.add(treeModel.getChildren(), true);
|
||||
tree = new TreePanel<ModelData>(store);
|
||||
|
||||
tree.setWidth(300);
|
||||
|
||||
tree.setDisplayProperty("name");
|
||||
// The icon decorator
|
||||
tree.setIconProvider(
|
||||
new ModelIconProvider<ModelData>() {
|
||||
public AbstractImagePrototype getIcon(final ModelData model) {
|
||||
if (model.get("icon") != null) {
|
||||
return IconHelper.createStyle((String) model.get("icon"));
|
||||
}
|
||||
return IconHelper.createStyle("defaultleaf-icon");
|
||||
}
|
||||
});
|
||||
tree.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
|
||||
initComponent(tree);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public TreePanel<ModelData> getTreeMenu() {
|
||||
// TODO Auto-generated method stub
|
||||
return tree;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,498 @@
|
|||
package org.gcube.portlets.admin.vredefinition.server;
|
||||
|
||||
import java.rmi.RemoteException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.gcube.application.framework.accesslogger.library.impl.AccessLogger;
|
||||
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.vredefinition.client.VREDefinitionService;
|
||||
import org.gcube.portlets.admin.vredefinition.client.model.VREFunctionalityModel;
|
||||
import org.gcube.portlets.admin.vredefinition.server.loggers.CreatedVRELogEntry;
|
||||
import org.gcube.portlets.admin.vredefinition.server.loggers.OpenVREWizardLogEntry;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ExternalResourceModel;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ResourceCategory;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.ResourceCategoryItem;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VRECollectionBean;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.VREDescriptionBean;
|
||||
import org.gcube.portlets.admin.vredefinition.shared.exception.VREDefinitionException;
|
||||
import org.gcube.vomanagement.usermanagement.RoleManager;
|
||||
import org.gcube.vomanagement.usermanagement.UserManager;
|
||||
import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayRoleManager;
|
||||
import org.gcube.vomanagement.usermanagement.impl.liferay.LiferayUserManager;
|
||||
import org.gcube.vomanagement.usermanagement.model.UserModel;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.FunctionalityItem;
|
||||
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.SelectedResourceDescriptionType;
|
||||
import org.gcube.vremanagement.vremodel.cl.stubs.types.VREDescription;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
||||
|
||||
public class VREDefinitionServiceImpl extends RemoteServiceServlet implements VREDefinitionService {
|
||||
private static final long serialVersionUID = -7565518362225100485L;
|
||||
|
||||
private static final Logger _log = LoggerFactory.getLogger(VREDefinitionServiceImpl.class);
|
||||
|
||||
private static final String DESIGNER = "Designer";
|
||||
private static final String MANAGER = "Manager";
|
||||
private static final String DESCRIPTION = "DESCRIPTION";
|
||||
|
||||
|
||||
private static String VRE_MANAGER_STRING = "VRE-Manager";
|
||||
|
||||
|
||||
private static final String VRE_GENERATOR_ATTRIBUTE = "VREGenerator";
|
||||
private static final String VRE_DEFINER_GENERATOR_ATTRIBUTE = "VREDefinerGenerator";
|
||||
private static final String USERNAME_ATTRIBUTE = "username";
|
||||
|
||||
private static final String HARD_CODED_VO_NAME = "/gcube/devsec";
|
||||
private static final String REEDIT_TYPE_ATTRIBUTE = "reeditType";
|
||||
private static final String APPROVE_MODE = "approve";
|
||||
public static final String EDIT_MODE = "edit";
|
||||
|
||||
private static final String CATEGORIES = "CATEGORIES";
|
||||
|
||||
private boolean withinEclipse = false;
|
||||
/**
|
||||
*
|
||||
* @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);
|
||||
withinEclipse = true;
|
||||
}
|
||||
|
||||
return SessionManager.getInstance().getASLSession(session.getId(), username);
|
||||
}
|
||||
|
||||
private VREGeneratorEvo getVREGenerator(){
|
||||
ASLSession d4ScienceSession = getASLSession();
|
||||
VREGeneratorEvo vreGenerator = (VREGeneratorEvo) d4ScienceSession.getAttribute(VRE_DEFINER_GENERATOR_ATTRIBUTE);
|
||||
if(vreGenerator==null){
|
||||
vreGenerator = new VREGeneratorEvo(d4ScienceSession);
|
||||
d4ScienceSession.setAttribute(VRE_DEFINER_GENERATOR_ATTRIBUTE, vreGenerator);
|
||||
}
|
||||
|
||||
AccessLogger log = AccessLogger.getAccessLogger();
|
||||
OpenVREWizardLogEntry logEntry = new OpenVREWizardLogEntry();
|
||||
log.logEntry(getASLSession().getUsername(), getASLSession().getScopeName(), logEntry);
|
||||
|
||||
return vreGenerator;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void storeResourceCategoryInSession(HashMap<String, ArrayList<ResourceCategory>> funcCategories) {
|
||||
getASLSession().setAttribute(CATEGORIES, funcCategories);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private HashMap<String, ArrayList<ResourceCategory>> getResourceCategoryFromSession() {
|
||||
return (HashMap<String, ArrayList<ResourceCategory>>) getASLSession().getAttribute(CATEGORIES);
|
||||
}
|
||||
/**
|
||||
* return the categories per functionality
|
||||
* @param func
|
||||
*/
|
||||
public ArrayList<ExternalResourceModel> getResourceCategoryByFunctionality(String id) {
|
||||
ArrayList<ExternalResourceModel> toReturn = new ArrayList<ExternalResourceModel>();
|
||||
return (getResourceCategoryFromSession().containsKey(id) ? getExternaleResources(id) : toReturn);
|
||||
}
|
||||
/**
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
private ArrayList<ExternalResourceModel> getExternaleResources(String id) {
|
||||
ArrayList<ExternalResourceModel> toReturn = new ArrayList<ExternalResourceModel>();
|
||||
ArrayList<ResourceCategory> cats = getResourceCategoryFromSession().get(id);
|
||||
for (ResourceCategory rc : cats)
|
||||
for(ResourceCategoryItem item : rc.getItems()) {
|
||||
toReturn.add(new ExternalResourceModel(item.getId(), item.getName(), item.getDescription(), item.isSelected(), rc.getName(), rc.getId()));
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Map<String,Object> isEditMode() {
|
||||
System.out.println("\n\n\n********************* isEditMode()");
|
||||
String reeditType = (String) getASLSession().getAttribute(REEDIT_TYPE_ATTRIBUTE);
|
||||
ASLSession session = getASLSession();
|
||||
session.setAttribute(VRE_DEFINER_GENERATOR_ATTRIBUTE, null);
|
||||
|
||||
if(reeditType != null && reeditType.equals(EDIT_MODE)) {
|
||||
|
||||
String vreid = (String) session.getAttribute(VRE_GENERATOR_ATTRIBUTE);
|
||||
if(vreid==null){
|
||||
session.setAttribute(VRE_DEFINER_GENERATOR_ATTRIBUTE, null);
|
||||
} else {
|
||||
VREGeneratorEvo vreGenerator = new VREGeneratorEvo(session, vreid);
|
||||
session.setAttribute(VRE_DEFINER_GENERATOR_ATTRIBUTE, vreGenerator);
|
||||
|
||||
}
|
||||
session.setAttribute(REEDIT_TYPE_ATTRIBUTE, null);
|
||||
|
||||
try {
|
||||
List<VRECollectionBean> collections = getCollections();
|
||||
VREFunctionalityModel functionalities = getFunctionality(true);
|
||||
Map<String,Object> map = new HashMap<String, Object>();
|
||||
map.put("collections", collections);
|
||||
map.put("functionalities", functionalities);
|
||||
return map;
|
||||
} catch (VREDefinitionException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
/**
|
||||
* read the available functionality from the service through ASL extension
|
||||
*/
|
||||
|
||||
public VREFunctionalityModel getFunctionality(boolean isEdit) throws VREDefinitionException {
|
||||
//if i am creating a new Vre I need to 'pretend' I already set the description to the service otherwise VREModeler won't return me the collections
|
||||
//if is editing instead this is not necessary
|
||||
if (! isEdit) {
|
||||
Calendar cal= Calendar.getInstance();
|
||||
long startTime = cal.getTimeInMillis();
|
||||
cal.add(Calendar.MONTH, 5);
|
||||
cal.add(Calendar.HOUR, 7);
|
||||
long endTime = cal.getTimeInMillis();
|
||||
try {
|
||||
//this is because Lucio is stupid
|
||||
getVREGenerator().setVREModel("notCompletedVirtualResearchEnv.", UUID.randomUUID().toString(), UUID.randomUUID().toString(), UUID.randomUUID().toString(), startTime, endTime);
|
||||
Thread.sleep(1000);
|
||||
} catch (Exception e1) {
|
||||
e1.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (! getVREGenerator().isVreModelerServiceUp())
|
||||
return null;
|
||||
VREFunctionalityModel toReturn = new VREFunctionalityModel("","selected functionality", "", "",false);
|
||||
try{
|
||||
HashMap<String, ArrayList<ResourceCategory>> funCategories = new HashMap<String, ArrayList<ResourceCategory>>();
|
||||
|
||||
List<FunctionalityItem> list = getVREGenerator().getFunctionality();
|
||||
|
||||
if (list == null) {
|
||||
_log.warn("FunctionalityList NULL");
|
||||
}
|
||||
for (FunctionalityItem fi :list) {
|
||||
System.out.println("id:"+fi.id()+" "+fi.name());
|
||||
VREFunctionalityModel toAdd = new VREFunctionalityModel(Integer.toString(fi.id()),
|
||||
fi.name(), fi.description(), "",fi.selected());
|
||||
|
||||
if (fi.children() != null && !fi.children().isEmpty()) {
|
||||
List<FunctionalityItem> children = fi.children();
|
||||
VREFunctionalityModel[] newchildrens = new VREFunctionalityModel[children.size() ];
|
||||
//creating node children
|
||||
for (int i = 0; i < children.size(); i++) {
|
||||
System.out.println(children.get(i).name() + " is " + children.get(i).selected());
|
||||
newchildrens[i] = new VREFunctionalityModel(Integer.toString(children.get(i).id()),
|
||||
children.get(i).name(), children.get(i).description(),
|
||||
"functionality-add-icon",children.get(i).selected());
|
||||
|
||||
ArrayList<ResourceCategory> resCats = new ArrayList<ResourceCategory>();
|
||||
if ( children.get(i).selectableResourcesDescription()!=null) {
|
||||
for (ResourceDescriptionItem category: children.get(i).selectableResourcesDescription()) {
|
||||
if (category.resources()!=null) {
|
||||
ResourceCategory rc = new ResourceCategory(category.id(), category.description());
|
||||
for (ResourceItem resource : category.resources()) {
|
||||
rc.addResourceItem(new ResourceCategoryItem(resource.id(), resource.name(), resource.description(), resource.selected()));
|
||||
}
|
||||
resCats.add(rc);
|
||||
}
|
||||
|
||||
}
|
||||
funCategories.put(newchildrens[i].getId() , resCats);
|
||||
}
|
||||
}
|
||||
toAdd.addChildren(newchildrens);
|
||||
toReturn.add(toAdd);
|
||||
} else {
|
||||
System.out.println("id:"+fi.id()+" "+fi.name() + " has no children");
|
||||
}
|
||||
|
||||
}
|
||||
storeResourceCategoryInSession(funCategories);
|
||||
for (String func : funCategories.keySet()) {
|
||||
System.out.println("-"+func);
|
||||
for(ResourceCategory category : funCategories.get(func)) {
|
||||
System.out.println("--"+category.getName());
|
||||
for(ResourceCategoryItem rc: category.getItems()) {
|
||||
System.out.println("----"+rc.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new VREDefinitionException("Set functionalities Error");
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
|
||||
public Map<String, Object> getVRE() throws VREDefinitionException {
|
||||
|
||||
HashMap<String, Object> toReturn = new HashMap<String,Object>();
|
||||
|
||||
HttpSession session = this.getThreadLocalRequest().getSession();
|
||||
String username = (String) session.getAttribute(USERNAME_ATTRIBUTE);
|
||||
|
||||
List<UserModel> belongingUsers = new LinkedList<UserModel>();
|
||||
|
||||
if (withinEclipse) {
|
||||
return getFakeBelongingUsers();
|
||||
}
|
||||
else {
|
||||
try {
|
||||
UserManager um = new LiferayUserManager();
|
||||
long currOrgid = getASLSession().getGroupId();
|
||||
RoleManager rm = new LiferayRoleManager();
|
||||
|
||||
System.out.println("Trying to get roleid of " + VRE_MANAGER_STRING + " into " + getASLSession().getGroupName());
|
||||
|
||||
String roleId = "none";
|
||||
|
||||
roleId = rm.getRoleId(VRE_MANAGER_STRING, getASLSession().getGroupName());
|
||||
System.out.println("Trying to get VRE-Managers of " + currOrgid + " role id=" + roleId);
|
||||
|
||||
|
||||
belongingUsers = um.listUsersByGroupAndRole(""+currOrgid, roleId);
|
||||
|
||||
} catch (Exception e1) {
|
||||
|
||||
e1.printStackTrace();
|
||||
throw new VREDefinitionException("We cannot find any VO-Admin user for this environment." +
|
||||
" There must be at least one.");
|
||||
}
|
||||
|
||||
|
||||
if (belongingUsers == null || belongingUsers.size() == 0)
|
||||
throw new VREDefinitionException("We cannot find any VO-Admin user for this environment." +
|
||||
" There must be at least one.");
|
||||
|
||||
try {
|
||||
ArrayList<String> managers = new ArrayList<String>();
|
||||
for (int i = 0; i < belongingUsers.size(); i++) {
|
||||
managers.add(belongingUsers.get(i).getScreenName());
|
||||
}
|
||||
toReturn.put("Manager", managers);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
e.printStackTrace();
|
||||
throw new VREDefinitionException("We cannot find any VO-Admin user for this environment." +
|
||||
" There must be at least one.");
|
||||
|
||||
}
|
||||
|
||||
toReturn.put("Designer", username);
|
||||
|
||||
try {
|
||||
VREDescriptionBean vre = getVREInSession();
|
||||
if(vre!= null) {
|
||||
toReturn.put("vreName",vre.getName());
|
||||
toReturn.put("vreManager", vre.getManager());
|
||||
toReturn.put("vreDesigner", vre.getDesigner());
|
||||
toReturn.put("vreDescription", vre.getDescription());
|
||||
toReturn.put("vreStartTime", vre.getStartTime());
|
||||
toReturn.put("vreEndTime",vre.getEndTime());
|
||||
}
|
||||
} catch (Exception e){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
private HashMap<String, Object> getFakeBelongingUsers() {
|
||||
|
||||
HashMap<String, Object> ret = new HashMap<String,Object>();
|
||||
|
||||
ArrayList<String> managers = new ArrayList<String>();
|
||||
|
||||
managers.add("antonio.gioia");
|
||||
managers.add("andrea.manzi");
|
||||
managers.add("massimiliano.assante");
|
||||
ret.put("Manager",managers);
|
||||
|
||||
ret.put("Designer", "antonio.gioia");
|
||||
try {
|
||||
VREDescriptionBean vre = getVREInSession();
|
||||
if(vre!= null) {
|
||||
System.out.println(" ########### VRE != NULL ##########");
|
||||
ret.put("vreName",vre.getName());
|
||||
ret.put("vreManager", vre.getManager());
|
||||
ret.put("vreDesigner", vre.getDesigner());
|
||||
ret.put("vreDescription", vre.getDescription());
|
||||
ret.put("vreStartTime", vre.getStartTime());
|
||||
ret.put("vreEndTime",vre.getEndTime());
|
||||
}
|
||||
} catch (Exception e1){
|
||||
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public String setVRE(VREDescriptionBean bean, String[] functionalityIDs, HashMap<String, List<ExternalResourceModel>> funcToExternalResources)
|
||||
throws VREDefinitionException {
|
||||
|
||||
setVREDescription(bean);
|
||||
setFunctionality(functionalityIDs, funcToExternalResources);
|
||||
try {
|
||||
getVREGenerator().setVREtoPendingState();
|
||||
} catch (RemoteException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
getASLSession().setAttribute(VRE_DEFINER_GENERATOR_ATTRIBUTE, null);
|
||||
|
||||
AccessLogger log = AccessLogger.getAccessLogger();
|
||||
CreatedVRELogEntry logEntry = new CreatedVRELogEntry(bean.getName(), "unknown", bean.getDesigner(), bean.getManager());
|
||||
log.logEntry(getASLSession().getUsername(), getASLSession().getScopeName(), logEntry);
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param functionalityIDs
|
||||
* @param funcToExternalResources
|
||||
* @return
|
||||
* @throws VREDefinitionException
|
||||
*/
|
||||
public String setFunctionality(String[] functionalityIDs, HashMap<String, List<ExternalResourceModel>> funcToExternalResources) throws VREDefinitionException {
|
||||
//fillling up
|
||||
ArrayList<SelectedResourceDescriptionType> toSend = new ArrayList<SelectedResourceDescriptionType>();
|
||||
|
||||
//for each func
|
||||
for (int i = 0; i < functionalityIDs.length; i++) {
|
||||
if (funcToExternalResources.containsKey(functionalityIDs[i])) { //get the associated resources
|
||||
String descriptionId = "";
|
||||
ArrayList<String> resourceIds = new ArrayList<String>();
|
||||
for (ExternalResourceModel extRes : funcToExternalResources.get(functionalityIDs[i])) {
|
||||
_log.debug("resource: " + extRes.getName() + " Selected?" + extRes.isSelected());
|
||||
if (extRes.isSelected()) {
|
||||
descriptionId = extRes.getCategoryId();
|
||||
resourceIds.add(extRes.getId());
|
||||
_log.debug("------> Added selected resource: " + extRes.getName() + " id=" + extRes.getId() + "\n");
|
||||
}
|
||||
}
|
||||
SelectedResourceDescriptionType toAdd = new SelectedResourceDescriptionType();
|
||||
toAdd.descriptionId(descriptionId);
|
||||
toAdd.resourceIds(resourceIds);
|
||||
toSend.add(toAdd);
|
||||
}
|
||||
}
|
||||
Integer funcIdAsInts[] = new Integer[functionalityIDs.length];
|
||||
for (int i = 0; i < functionalityIDs.length; i++) {
|
||||
try {
|
||||
funcIdAsInts[i] = Integer.parseInt(functionalityIDs[i]);
|
||||
}
|
||||
catch (ClassCastException e) {
|
||||
_log.error("Could not convert to int: " + functionalityIDs[i]);
|
||||
}
|
||||
}
|
||||
SelectedResourceDescriptionType[] selres = toSend.toArray(new SelectedResourceDescriptionType[toSend.size()]);
|
||||
System.out.println("SelectedResourceDescriptionType[] Sending to Service .... toSend size = " + toSend.size());
|
||||
for (int i = 0; i < selres.length; i++) {
|
||||
System.out.println("SelectedResourceDescriptionType DESC: " + selres[i].getDescriptionId());
|
||||
for (int j = 0; j < selres[i].resourceIds().size(); j++) {
|
||||
System.out.println("resid= " +selres[i].resourceIds().get(j));
|
||||
}
|
||||
}
|
||||
|
||||
VREGeneratorEvo vreGenerator = getVREGenerator();
|
||||
try {
|
||||
vreGenerator.setFunctionality(funcIdAsInts, selres);
|
||||
vreGenerator.setVREtoPendingState();
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
throw new VREDefinitionException("Set functionalities Error");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private String setVREDescription(VREDescriptionBean bean) throws VREDefinitionException {
|
||||
VREGeneratorEvo vreGenerator = getVREGenerator();
|
||||
ASLSession d4ScienceSession = getASLSession();
|
||||
d4ScienceSession.setAttribute("VREName", bean.getName());
|
||||
d4ScienceSession.setAttribute(DESCRIPTION, bean.getDescription());
|
||||
d4ScienceSession.setAttribute(DESIGNER, bean.getDesigner());
|
||||
d4ScienceSession.setAttribute(MANAGER, bean.getManager());
|
||||
try {
|
||||
vreGenerator.setVREModel(bean.getName(), bean.getDescription(), bean.getDesigner(),
|
||||
bean.getManager(), bean.getStartTime().getTime() , bean.getEndTime().getTime());
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
throw new VREDefinitionException("Set Description Error");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public List<VRECollectionBean> getCollections() throws VREDefinitionException {
|
||||
List<VRECollectionBean> listToReturn = new ArrayList<VRECollectionBean>();
|
||||
return listToReturn;
|
||||
}
|
||||
|
||||
private VREDescriptionBean getVREInSession() throws VREDefinitionException {
|
||||
VREGeneratorEvo vreGenerator = getVREGenerator();
|
||||
|
||||
VREDescriptionBean vreDescBean = null;
|
||||
try {
|
||||
VREDescription sd = vreGenerator.getVREModel();
|
||||
vreDescBean = new VREDescriptionBean(sd.name(), sd.description(),
|
||||
sd.designer(), sd.manager(), sd.startTime().getTime(), sd.endTime().getTime());
|
||||
|
||||
} catch (RemoteException e) {
|
||||
throw new VREDefinitionException("Fail retrieve VRE");
|
||||
}
|
||||
|
||||
|
||||
System.out.println("Model: " + vreDescBean.getName());
|
||||
System.out.println("--- END Getting VRE Model ---");
|
||||
|
||||
return vreDescBean;
|
||||
|
||||
}
|
||||
|
||||
public String[] getExistingNames() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package org.gcube.portlets.admin.vredefinition.server.loggers;
|
||||
|
||||
import org.gcube.application.framework.accesslogger.model.AccessLogEntry;
|
||||
|
||||
/**
|
||||
* Represents an access log entry for creating a new Template
|
||||
*/
|
||||
public class CreatedVRELogEntry extends AccessLogEntry{
|
||||
|
||||
private String name;
|
||||
private String id;
|
||||
private String designer;
|
||||
private String manager;
|
||||
|
||||
public CreatedVRELogEntry(String name, String id, String designer, String manager) {
|
||||
super("Created_VRE");
|
||||
this.name = replaceReservedChars(name);
|
||||
this.id = replaceReservedChars(id);
|
||||
this.designer = replaceReservedChars(designer);
|
||||
this.manager = replaceReservedChars(manager);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLogMessage() {
|
||||
String message = "Name = " + name + "|ID = " + id + "|DESIGNER = " + designer+ "|MANAGER = " + manager;
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package org.gcube.portlets.admin.vredefinition.server.loggers;
|
||||
|
||||
import org.gcube.application.framework.accesslogger.model.AccessLogEntry;
|
||||
|
||||
|
||||
/**
|
||||
* Represents an access log entry for OpenVREWizardLogEntry
|
||||
*/
|
||||
public class OpenVREWizardLogEntry extends AccessLogEntry{
|
||||
|
||||
|
||||
public OpenVREWizardLogEntry() {
|
||||
super("VRE Definition Open");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getLogMessage() {
|
||||
String message = "VRE Definition Open";
|
||||
return message;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package org.gcube.portlets.admin.vredefinition.server.portlet;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.portlet.ActionRequest;
|
||||
import javax.portlet.ActionResponse;
|
||||
import javax.portlet.GenericPortlet;
|
||||
import javax.portlet.PortletException;
|
||||
import javax.portlet.PortletRequestDispatcher;
|
||||
import javax.portlet.RenderRequest;
|
||||
import javax.portlet.RenderResponse;
|
||||
|
||||
import org.gcube.portal.custom.scopemanager.scopehelper.ScopeHelper;
|
||||
|
||||
public class VREDefinitionPortlet extends GenericPortlet {
|
||||
|
||||
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
|
||||
ScopeHelper.setContext(request);
|
||||
PortletRequestDispatcher dispatcher =
|
||||
getPortletContext().getRequestDispatcher("/WEB-INF/jsp/CollectionViewerPortlet_view.jsp");
|
||||
dispatcher.include(request, response);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public void processAction(ActionRequest request, ActionResponse response)
|
||||
throws PortletException, IOException {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
package org.gcube.portlets.admin.vredefinition.shared;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseModel;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ExternalResourceModel extends BaseModel {
|
||||
|
||||
public ExternalResourceModel() {
|
||||
}
|
||||
|
||||
public ExternalResourceModel(String id, String name, String description, boolean isSelected, String categoryName, String categoryId) {
|
||||
set("id", id);
|
||||
set("name", name);
|
||||
set("description", description);
|
||||
set("category", categoryName);
|
||||
set("categoryId", categoryId);
|
||||
set("isSelected", isSelected);
|
||||
}
|
||||
|
||||
|
||||
public String getId() {
|
||||
return (String) get("id");
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return (String) get("name");
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return (String) get("description");
|
||||
}
|
||||
|
||||
public String getCategoryName() {
|
||||
return (String) get("category");
|
||||
}
|
||||
|
||||
public String getCategoryId() {
|
||||
return (String) get("categoryId");
|
||||
}
|
||||
|
||||
public boolean isSelected() {
|
||||
return ((Boolean) get("isSelected")).booleanValue();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package org.gcube.portlets.admin.vredefinition.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,57 @@
|
|||
package org.gcube.portlets.admin.vredefinition.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ResourceCategory implements Serializable {
|
||||
|
||||
private String id;
|
||||
private String name;
|
||||
private ArrayList<ResourceCategoryItem> items;
|
||||
|
||||
public ResourceCategory() {
|
||||
super();
|
||||
}
|
||||
|
||||
public ResourceCategory(String id, String name,
|
||||
ArrayList<ResourceCategoryItem> items) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public ResourceCategory(String id, String name) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.items = new ArrayList<ResourceCategoryItem>();
|
||||
}
|
||||
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public ArrayList<ResourceCategoryItem> getItems() {
|
||||
return items;
|
||||
}
|
||||
public void setItems(ArrayList<ResourceCategoryItem> items) {
|
||||
this.items = items;
|
||||
}
|
||||
|
||||
public void addResourceItem(ResourceCategoryItem item) {
|
||||
items.add(item);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package org.gcube.portlets.admin.vredefinition.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public class ResourceCategoryItem implements Serializable {
|
||||
|
||||
private String id;
|
||||
private String name;
|
||||
private String description;
|
||||
private boolean isSelected;
|
||||
|
||||
public ResourceCategoryItem() {
|
||||
super();
|
||||
}
|
||||
|
||||
public ResourceCategoryItem(String id, String name, String description,
|
||||
boolean isSelected) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.isSelected = isSelected;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public boolean isSelected() {
|
||||
return isSelected;
|
||||
}
|
||||
|
||||
public void setSelected(boolean isSelected) {
|
||||
this.isSelected = isSelected;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package org.gcube.portlets.admin.vredefinition.shared;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.extjs.gxt.ui.client.data.BaseModel;
|
||||
|
||||
public class VRECollectionBean extends BaseModel {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public VRECollectionBean() {
|
||||
}
|
||||
|
||||
public VRECollectionBean(String id, String name, String description, int numberOfMembers, Date creationTime, Date lastUpdateTime, boolean isSelected) {
|
||||
|
||||
set("name", name);
|
||||
set("description", description);
|
||||
set("numberOfMembers", numberOfMembers);
|
||||
set("creationTime", creationTime);
|
||||
set("lastUpdateTime", lastUpdateTime);
|
||||
set("isSelected", isSelected);
|
||||
set("id", id);
|
||||
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return (String) get("id");
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return (String) get("name");
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return (String) get("description");
|
||||
}
|
||||
|
||||
public int getNumberOfMembers() {
|
||||
return ((Integer) get("numberOfMembers")).intValue();
|
||||
}
|
||||
|
||||
public Date getCreationTime() {
|
||||
return (Date) get("creationTime");
|
||||
}
|
||||
|
||||
|
||||
public Date getLastUpdateTime() {
|
||||
return (Date) get("lastUpdateTime");
|
||||
}
|
||||
|
||||
public boolean isSelected() {
|
||||
return ((Boolean) get("isSelected")).booleanValue();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package org.gcube.portlets.admin.vredefinition.shared;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
public class VREDescriptionBean implements Serializable {
|
||||
|
||||
private String name;
|
||||
|
||||
private String description;
|
||||
|
||||
private String designer;
|
||||
|
||||
private String manager;
|
||||
|
||||
private Date startTime;
|
||||
|
||||
private Date endTime;
|
||||
|
||||
public VREDescriptionBean() {
|
||||
super();
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
public VREDescriptionBean(String name, String description, String designer,
|
||||
String manager, Date startTime, Date endTime) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.designer = designer;
|
||||
this.manager = manager;
|
||||
this.startTime = startTime;
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public String getDesigner() {
|
||||
return designer;
|
||||
}
|
||||
|
||||
public void setDesigner(String designer) {
|
||||
this.designer = designer;
|
||||
}
|
||||
|
||||
public String getManager() {
|
||||
return manager;
|
||||
}
|
||||
|
||||
public void setManager(String manager) {
|
||||
this.manager = manager;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getEndTime() {
|
||||
return endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Date endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package org.gcube.portlets.admin.vredefinition.shared.exception;
|
||||
|
||||
public class VREDefinitionException extends Exception {
|
||||
|
||||
private String error;
|
||||
public VREDefinitionException(){
|
||||
|
||||
error = "VRE Definition Error :";
|
||||
}
|
||||
|
||||
public VREDefinitionException(String message){
|
||||
error += message;
|
||||
}
|
||||
|
||||
public String getError() {
|
||||
return this.error;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module rename-to='VREDefinition'>
|
||||
<!-- Inherit the core Web Toolkit stuff. -->
|
||||
<inherits name='com.google.gwt.user.User' />
|
||||
|
||||
<!-- inherits GCUBE Widgets -->
|
||||
<inherits name='org.gcube.portlets.user.gcubewidgets.WidgetFactory' />
|
||||
<inherits name="com.extjs.gxt.ui.GXT" />
|
||||
|
||||
<!-- Other module inherits -->
|
||||
|
||||
<!-- Specify the app entry point class. -->
|
||||
<entry-point class='org.gcube.portlets.admin.vredefinition.client.VREDefinition' />
|
||||
|
||||
<!-- Specify the paths for translatable code -->
|
||||
<source path='client' />
|
||||
<source path='shared' />
|
||||
|
||||
</module>
|
|
@ -0,0 +1,136 @@
|
|||
.info-icon {
|
||||
background-image: url(images/icons/information.png) !important;
|
||||
}
|
||||
|
||||
.content-icon {
|
||||
background-image: url(images/icons/content.png) !important;
|
||||
}
|
||||
|
||||
.collections-icon {
|
||||
background-image: url(images/icons/collections.png) !important;
|
||||
}
|
||||
|
||||
.metadata-icon {
|
||||
background-image: url(images/icons/metadata.png) !important;
|
||||
}
|
||||
|
||||
.functionality-icon {
|
||||
background-image: url(images/icons/functionality.png) !important;
|
||||
}
|
||||
|
||||
.functionality-add-icon {
|
||||
background-image: url(images/icons/functionality_add.png) !important;
|
||||
}
|
||||
|
||||
.architecture-icon {
|
||||
background-image: url(images/icons/architecture.png) !important;
|
||||
}
|
||||
|
||||
.report-icon {
|
||||
background-image: url(images/icons/report.png) !important;
|
||||
}
|
||||
|
||||
.play-icon {
|
||||
background-image: url(images/icons/play.png) !important;
|
||||
}
|
||||
|
||||
.runninginstance-icon {
|
||||
background-image: url(images/icons/runninginstance.png) !important;
|
||||
}
|
||||
|
||||
.forward-icon {
|
||||
background-image: url(images/icons/forward.png) !important;
|
||||
}
|
||||
|
||||
.forward-icon-over {
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity = 60);
|
||||
}
|
||||
|
||||
.forward-icon-disabled {
|
||||
background-image: url(images/icons/forward.png) !important;
|
||||
}
|
||||
|
||||
.backward-icon {
|
||||
background-image: url(images/icons/backward.png) !important;
|
||||
}
|
||||
|
||||
.backward-icon-over {
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity = 60);
|
||||
}
|
||||
|
||||
.backward-icon-disabled {
|
||||
background-image: url(images/icons/backward.png) !important;
|
||||
}
|
||||
|
||||
.upload-icon {
|
||||
background-image: url(images/icons/upload.png) !important;
|
||||
}
|
||||
|
||||
.upload-icon-over {
|
||||
opacity: 0.6;
|
||||
filter: alpha(opacity = 60);
|
||||
}
|
||||
|
||||
.upload-icon-disabled {
|
||||
background-image: url(images/icons/upload.png) !important;
|
||||
}
|
||||
|
||||
.label-wizard {
|
||||
color: #15428B;
|
||||
font-size: 20px ! important;
|
||||
font-weight: bold ! important;
|
||||
margin-top: 18px;
|
||||
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.23);
|
||||
}
|
||||
|
||||
.functionalityText {
|
||||
color: #444;
|
||||
font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial,
|
||||
sans-serif;
|
||||
font-size: 12px;
|
||||
padding-left: 5px;
|
||||
padding-right: 10px;
|
||||
text-align: justify;
|
||||
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.20);
|
||||
line-height: 15px ! important;
|
||||
padding-bottom: 10px;
|
||||
overflow-y: auto;
|
||||
height: 120px;
|
||||
}
|
||||
|
||||
.resourceText {
|
||||
color: #444;
|
||||
font-family: 'Lucida Grande', Verdana, 'Bitstream Vera Sans', Arial, sans-serif;
|
||||
font-size: 10px;
|
||||
padding-left: 5px;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.theTitle {
|
||||
font-family: Georgia, 'Times New Roman', Times, serif;
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.theResources {
|
||||
font-family: Georgia, 'Times New Roman', Times, serif;
|
||||
font-size: 15px;
|
||||
color: #333;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.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,27 @@
|
|||
<!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="VREDefinition.css">
|
||||
|
||||
<title>Web Application Starter Project</title>
|
||||
|
||||
<script type="text/javascript" language="javascript" src="VREDefinition/VREDefinition.nocache.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="VREDefinitionDIV"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,13 @@
|
|||
<%@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 />
|
||||
--%>
|
||||
|
||||
<b>
|
||||
EDIT MODE
|
||||
</b>
|
|
@ -0,0 +1,13 @@
|
|||
<%@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 />
|
||||
--%>
|
||||
|
||||
<b>
|
||||
HELP MODE
|
||||
</b>
|
|
@ -0,0 +1,17 @@
|
|||
<%@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()%>/gxt/css/gxt-all.css" />
|
||||
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/VREDefinition.css">
|
||||
|
||||
<script language='javascript' src='<%=request.getContextPath()%>/gxt/flash/swfobject.js'></script>
|
||||
|
||||
<script type="text/javascript" language="javascript" src='<%=request.getContextPath()%>/VREDefinition/VREDefinition.nocache.js'></script>
|
||||
<div id="VREDefinitionDIV">
|
||||
</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="VREDefinition" />
|
||||
</category>
|
||||
</display>
|
|
@ -0,0 +1,9 @@
|
|||
name=VRE Definition Wizard
|
||||
module-group-id=liferay
|
||||
module-incremental-version=1
|
||||
tags=
|
||||
short-description=
|
||||
change-log=
|
||||
page-url=http://www.liferay.com
|
||||
author=Liferay, Inc.
|
||||
licenses=MIT
|
|
@ -0,0 +1,17 @@
|
|||
<?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>VREDefinition</portlet-name>
|
||||
<layout-cacheable>false</layout-cacheable>
|
||||
<instanceable>false</instanceable>
|
||||
<ajaxable>false</ajaxable>
|
||||
<!-- LOCATION CSS HERE -->
|
||||
<header-portlet-css>/Wizard.css</header-portlet-css>
|
||||
</portlet>
|
||||
<role-mapper>
|
||||
<role-name>administrator</role-name>
|
||||
<role-link>Administrator</role-link>
|
||||
</role-mapper>
|
||||
</liferay-portlet-app>
|
|
@ -0,0 +1,24 @@
|
|||
<?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>VREDefinition</portlet-name>
|
||||
<display-name>VRE Definition Wizard</display-name>
|
||||
<portlet-class>org.gcube.portlets.admin.vredefinition.server.portlet.VREDefinitionPortlet</portlet-class>
|
||||
<init-param>
|
||||
<name>view-jsp</name>
|
||||
<value>/WEB-INF/jsp/CollectionViewerPortlet_view.jsp</value>
|
||||
</init-param>
|
||||
<expiration-cache>0</expiration-cache>
|
||||
<supports>
|
||||
<mime-type>text/html</mime-type>
|
||||
</supports>
|
||||
<portlet-info>
|
||||
<title>VRE Definition Wizard</title>
|
||||
<short-title>VRE Definition Wizard</short-title>
|
||||
<keywords>VRE Definition Wizard</keywords>
|
||||
</portlet-info>
|
||||
<security-role-ref>
|
||||
<role-name>administrator</role-name>
|
||||
</security-role-ref>
|
||||
</portlet>
|
||||
</portlet-app>
|
|
@ -0,0 +1,23 @@
|
|||
<?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>VREDefinitionServiceImpl</servlet-name>
|
||||
<servlet-class>org.gcube.portlets.admin.vredefinition.server.VREDefinitionServiceImpl</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>VREDefinitionServiceImpl</servlet-name>
|
||||
<url-pattern>/VREDefinition/VREDefinitionServiceImpl</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- Default page to serve -->
|
||||
<welcome-file-list>
|
||||
<welcome-file>VREDefinition.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
</web-app>
|
|
@ -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(../images/add.gif) !important;
|
||||
}
|
||||
|
||||
.option {
|
||||
background-image: url(../images/plugin.gif) !important;
|
||||
}
|
||||
|
||||
.remove {
|
||||
background-image: url(../images/delete.gif) !important;
|
||||
}
|
||||
|
||||
.tabs {
|
||||
background-image: url(../images/tabs.gif) !important;
|
||||
}
|
||||
|
||||
.ux-start-menu {
|
||||
background: transparent none;
|
||||
border: 0px none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.ux-start-menu-tl .x-window-header {
|
||||
color: #f1f1f1;
|
||||
font: bold 11px tahoma, arial, verdana, sans-serif;
|
||||
padding: 5px 0 4px 0;
|
||||
}
|
||||
|
||||
.x-panel-tl .x-panel-icon,.ux-start-menu-tl .x-panel-icon {
|
||||
background-position: 0pt 4px;
|
||||
background-repeat: no-repeat;
|
||||
padding-left: 20px !important;
|
||||
}
|
||||
|
||||
.ux-start-menu-tl {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-left-corners.png ) no-repeat 0 0;
|
||||
padding-left: 6px;
|
||||
zoom: 1;
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ux-start-menu-tr {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-right-corners.png ) no-repeat right
|
||||
0;
|
||||
padding-right: 6px;
|
||||
}
|
||||
|
||||
.ux-start-menu-tc {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-top-bottom.png ) repeat-x 0 0;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-ml {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-left-right.png ) repeat-y 0 0;
|
||||
padding-left: 6px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-bc {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-top-bottom.png ) repeat-x 0 bottom;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-bc .x-window-footer {
|
||||
padding-bottom: 6px;
|
||||
zoom: 1;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
|
||||
.ux-start-menu-bl {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-left-corners.png ) no-repeat 0
|
||||
bottom;
|
||||
padding-left: 6px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.ux-start-menu-br {
|
||||
background: transparent url( ../images/taskbar/black/start-menu-right-corners.png ) no-repeat right
|
||||
bottom;
|
||||
padding-right: 6px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
.x-panel-nofooter .ux-start-menu-bc {
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
.ux-start-menu-splitbar-h {
|
||||
background-color: #d0d0d0;
|
||||
}
|
||||
|
||||
.ux-start-menu-bwrap {
|
||||
background: transparent none;
|
||||
border: 0px none;
|
||||
}
|
||||
|
||||
.ux-start-menu-body {
|
||||
background: transparent none;
|
||||
border: 0px none;
|
||||
}
|
||||
|
||||
.ux-start-menu-apps-panel {
|
||||
background: #ffffff none;
|
||||
border: 1px solid #1e2124;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel {
|
||||
border: 0px none;
|
||||
background: transparent url( ../images/taskbar/black/start-menu-right.png ) repeat-y scroll right
|
||||
0pt;
|
||||
}
|
||||
|
||||
#ux-taskbar-start {
|
||||
background: #000000 url( ../images/taskbar/black/taskbar-start-panel-bg.gif ) repeat-x left top;
|
||||
left: 0px;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#ux-taskbar-start .x-toolbar {
|
||||
background: none;
|
||||
padding: 0px;
|
||||
border: 0px none;
|
||||
}
|
||||
|
||||
#ux-taskbuttons-panel {
|
||||
background: #000000 url( ../images/taskbar/black/taskbuttons-panel-bg.gif ) repeat-x left top;
|
||||
padding-top: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-strip-wrap { /* overflow:hidden;
|
||||
position:relative;
|
||||
width:100%; */
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
ul.ux-taskbuttons-strip {
|
||||
display: block;
|
||||
width: 5000px;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
ul.ux-taskbuttons-strip li {
|
||||
float: left;
|
||||
margin-left: 2px;
|
||||
}
|
||||
|
||||
ul.ux-taskbuttons-strip li.ux-taskbuttons-edge {
|
||||
float: left;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: 0 none !important;
|
||||
font-size: 1px !important;
|
||||
line-height: 1px !important;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
background: transparent !important;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.x-clear {
|
||||
clear: both;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
line-height: 0;
|
||||
font-size: 0;
|
||||
}
|
||||
|
||||
.x-taskbuttons-scrolling {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.x-taskbuttons-scrolling .ux-taskbuttons-strip-wrap {
|
||||
margin-left: 18px;
|
||||
margin-right: 18px;
|
||||
}
|
||||
|
||||
td.ux-taskButtons-edge { /*float:left;*/
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
border: 0 none !important;
|
||||
font-size: 1px !important;
|
||||
line-height: 1px !important;
|
||||
overflow: hidden;
|
||||
zoom: 1;
|
||||
background: transparent !important;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-left {
|
||||
background: transparent url( ../images/taskbar/black/scroll-left.gif ) no-repeat -18px 0;
|
||||
width: 18px;
|
||||
position: absolute;
|
||||
left: 1px;
|
||||
top: 0px;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-left-over {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-left-disabled {
|
||||
background-position: -18px 0;
|
||||
opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-right {
|
||||
background: transparent url( ../images/taskbar/black/scroll-right.gif ) no-repeat 0 0;
|
||||
width: 18px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0px;
|
||||
z-index: 10;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-right-over {
|
||||
background-position: -18px 0;
|
||||
}
|
||||
|
||||
.ux-taskbuttons-scroller-right-disabled {
|
||||
background-position: 0 0;
|
||||
opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.ux-toolmenu-sep {
|
||||
background-color: #18191a;
|
||||
border-bottom: 1px solid #858789;
|
||||
display: block;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
margin: 2px 3px;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel ul.x-menu-list li.x-menu-list-item a.x-menu-item {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel ul.x-menu-list li.x-menu-list-item .x-menu-item-active a.x-menu-item {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.ux-start-menu-tools-panel .x-menu-item-active {
|
||||
background: #525456 url( ../images/taskbar/black/item-over.gif ) repeat-x left bottom;
|
||||
border: 1px solid #000000;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-splitbar-h {
|
||||
background: #000000 url( ../images/taskbar/black/taskbar-split-h.gif ) no-repeat 0 0;
|
||||
width: 8px;
|
||||
}
|
||||
|
||||
.x-window-header-text {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/*
|
||||
* Begin Start button
|
||||
*/
|
||||
.ux-startbutton-left,.ux-startbutton-right {
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
.ux-startbutton-left {
|
||||
width: 10px;
|
||||
height: 28px;
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ux-startbutton-right {
|
||||
width: 10px;
|
||||
height: 30px;
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 -28px;
|
||||
}
|
||||
|
||||
.ux-startbutton-left i,.ux-startbutton-right i {
|
||||
display: block;
|
||||
width: 10px;
|
||||
overflow: hidden;
|
||||
font-size: 1px;
|
||||
line-height: 1px;
|
||||
}
|
||||
|
||||
.ux-startbutton-center {
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) repeat-x 0 -56px;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
cursor: pointer;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-startbutton-left {
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-startbutton-right {
|
||||
background-position: 0 -30px;
|
||||
}
|
||||
|
||||
#ux-taskbar .ux-startbutton-center {
|
||||
background-position: 0 -60px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-startbutton-left {
|
||||
background-position: 0 -270px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-startbutton-right {
|
||||
background-position: 0 -300px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-over .ux-startbutton-center {
|
||||
background-position: 0 -330px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-startbutton-left {
|
||||
background-position: 0 -180px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-startbutton-right {
|
||||
background-position: 0 -210px;
|
||||
}
|
||||
|
||||
#ux-taskbar .x-btn-click .ux-startbutton-center {
|
||||
background-position: 0 -240px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-left {
|
||||
background-position: 0 -90px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-right {
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) no-repeat 0 -120px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-center {
|
||||
background: url( ../images/taskbar/black/startbutton.gif ) repeat-x 0 -150px;
|
||||
}
|
||||
|
||||
#ux-taskbar .active-win .ux-startbutton-center button {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/*
|
||||
* End Start button
|
||||
*/
|
||||
.x-resizable-proxy {
|
||||
background: #C7DFFC;
|
||||
opacity: .5;
|
||||
-moz-opacity: .5;
|
||||
filter: alpha(opacity = 50);
|
||||
border: 1px solid #3b5a82;
|
||||
}
|
||||
|
||||
/* Desktop Shortcuts */
|
||||
#x-shortcuts dt {
|
||||
float: left;
|
||||
margin: 15px 0 0 15px;
|
||||
clear: left;
|
||||
width: 64px;
|
||||
font: normal 10px tahoma, arial, verdana, sans-serif;
|
||||
text-align: center;
|
||||
zoom: 1;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#x-shortcuts dt a {
|
||||
width: 64px;
|
||||
display: block;
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#x-shortcuts dt div {
|
||||
width: 100%;
|
||||
color: white;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#x-shortcuts dt a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
After Width: | Height: | Size: 994 B |
After Width: | Height: | Size: 989 B |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 155 KiB |
After Width: | Height: | Size: 996 B |
After Width: | Height: | Size: 967 B |
After Width: | Height: | Size: 513 B |
After Width: | Height: | Size: 842 B |
After Width: | Height: | Size: 992 B |
After Width: | Height: | Size: 808 B |
After Width: | Height: | Size: 400 B |
After Width: | Height: | Size: 191 B |
After Width: | Height: | Size: 944 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 920 B |
After Width: | Height: | Size: 505 B |
After Width: | Height: | Size: 972 B |
After Width: | Height: | Size: 832 B |
After Width: | Height: | Size: 988 B |
After Width: | Height: | Size: 2.2 KiB |